Skip to main content
Glama

Ignition MCP Server

by WhiskeyHouse
ignition_openapi.json10.6 MB
{ "openapi": "3.1.0", "info": { "title": "Ignition HTTP API", "description": "### About this page\nThis specification covers all public HTTP API endpoints for the Ignition platform and currently\ninstalled modules. It is intended to be used by developers to understand the capabilities and\ndata formats used by the API. This documentation is generated from the\n[OpenAPI](https://www.openapis.org/) specification document which is available in JSON format\n[here](/openapi.json).\n", "contact": { "url": "https://support.inductiveautomation.com/", "email": "support@inductiveautomation.com" }, "license": { "name": "Inductive Automation EULA", "url": "/res/sys/license.html" }, "version": "1.0.0", "x-logo": { "url": "/res/sys/img/homepage/gw_hp_ignition_logo.png", "altText": "Ignition by Inductive Automation" } }, "externalDocs": { "description": "Ignition User Manual", "url": "https://docs.inductiveautomation.com/" }, "paths": { "/data/alarm-notification/api/v1/pipeline": { "get": { "tags": [ "pipeline-status" ], "summary": "Alarm Pipeline Detail", "description": "Information about a single alarming pipeline", "parameters": [ { "name": "path", "in": "query", "description": "Path to alarm pipeline", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "path": "project:MyProjectName:/pipeline:MyPipelineName" } } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "400": { "description": "Could not find pipeline with the given name." }, "502": { "description": "Alarming module not found." }, "200": { "description": "Pipeline information returned successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "pipelinePath": { "description": "The pipeline path", "type": "string", "x-ignition-non-secret": false }, "source": { "description": "The pipeline source", "type": "string", "x-ignition-non-secret": false }, "displayPath": { "description": "The pipeline displayPath", "type": "string", "x-ignition-non-secret": false }, "blockName": { "description": "The pipeline block name", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The pipeline status", "type": "string", "x-ignition-non-secret": false }, "millis": { "description": "The current pipeline runtime", "type": "number", "x-ignition-non-secret": false }, "alarmEventId": { "description": "The UUID of the alarm event in this pipeline instance", "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false }, "delete": { "tags": [ "pipeline-status" ], "summary": "Cancel Alarming Pipeline", "description": "Cancel an alarming pipeline for the given alarm event ID.", "parameters": [], "requestBody": { "description": "A json object containing the fully qualified path to the alarm pipeline and alarm event ID associated with the pipeline instance to be cancelled.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "path": { "description": "The full path to the alarming pipeline in the format `project:MyProjectName:/pipeline:MyPipelineName`", "type": "string", "x-ignition-non-secret": false }, "alarmEventId": { "description": "The UUID of the alarm event to cancel", "type": "string", "x-ignition-non-secret": false } } } } } }, "responses": { "200": { "description": "Pipeline Cancelled.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the cancel attempt was successful", "type": "boolean", "x-ignition-non-secret": false }, "alarmEventId": { "description": "The UUID of the alarm event whose pipeline was cancelled", "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/alarm-notification/api/v1/pipelines": { "get": { "tags": [ "pipeline-status" ], "summary": "Alarm Pipeline Overview", "description": "Information about the alarming pipelines", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "502": { "description": "Alarming module not found." }, "200": { "description": "Pipeline information returned successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "path": { "description": "The full pipeline path", "type": "string", "x-ignition-non-secret": false }, "projectName": { "description": "The project name", "type": "string", "x-ignition-non-secret": false }, "pipelineName": { "description": "The pipeline name", "type": "string", "x-ignition-non-secret": false }, "itemCount": { "description": "The number of pipeline instances running", "type": "number", "x-ignition-non-secret": false }, "active": { "description": "Whether this pipeline is active", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/activation/activate/{key}": { "put": { "tags": [ "license-activation" ], "summary": "Activate License", "description": "Activate an Ignition license using the given license key. Upon successful activation,details of the license key and it's various attributes will be returned in the response.", "parameters": [ { "name": "key", "in": "path", "description": "The Ignition License key.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "404": { "description": "License key not found." }, "500": { "description": "Error reactivating license.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "responseCode": { "description": "Optional. Response code from the IA license service", "type": "number", "x-ignition-non-secret": false }, "responseDescription": { "description": "Optional. Description from the IA license service", "type": "string", "x-ignition-non-secret": false }, "failureMessage": { "description": "Optional. Failure message from the IA license service", "type": "string", "x-ignition-non-secret": false }, "data": { "description": "Optional. Data returned from the IA license service", "type": "string", "x-ignition-non-secret": false } } } } } }, "200": { "description": "Licence activate successfully.", "content": { "application/json": { "schema": { "properties": { "licenseVersion": { "type": "integer", "description": "License version." }, "cdkey": { "type": "string", "description": "The license key.", "x-ignition-non-secret": true }, "systemHash": { "type": "string", "description": "Deprecated, system identifier for legacy licenses." }, "systemId": { "type": "string", "description": "System identifier for new licenses." }, "platformVersion": { "type": "integer", "description": "The platform version this key applies to." }, "restrictions": { "type": "array", "items": { "properties": { "developer": { "type": "string" }, "value": { "type": "string" } } } }, "modules": { "type": "array", "items": { "properties": { "name": { "type": "string", "description": "The module ID." }, "version": { "type": "integer", "description": "The version of this module." }, "restrictions": { "type": "array", "items": { "properties": { "name": { "type": "string" }, "value": { "type": "string" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/activation/is-online": { "get": { "tags": [ "license-activation" ], "summary": "Check Gateway Online Status", "description": "Returns a boolean representing the online state of the gateway.", "parameters": [], "responses": { "200": { "description": "Online status returned successfully.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" } } } } } } }, "deprecated": false } }, "/data/api/v1/activation/offline/activate": { "post": { "tags": [ "license-activation" ], "summary": "Submit Offline Activation", "description": "Submit an offline activation response, which can be retrieved by uploading an offline activation request to Inductive Automation's website.", "parameters": [], "requestBody": { "description": "The offline activation request as a stream of bytes.", "required": true, "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } }, "responses": { "500": { "description": "Error activating license." }, "200": { "description": "The activation request as a Base64 encoded string.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "message": { "description": "Optional. Message included with the response.", "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/activation/offline/activate-request/{key}": { "get": { "tags": [ "license-activation" ], "summary": "Generate Offline Activation Request", "description": "Generate an offline activation request for the given license key.", "parameters": [ { "name": "key", "in": "path", "description": "The Ignition License key.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "404": { "description": "License key not found." }, "500": { "description": "Error activating license." }, "200": { "description": "The activation request as a Base64 encoded string." } }, "deprecated": false } }, "/data/api/v1/activation/offline/unactivate/{key}": { "post": { "tags": [ "license-activation" ], "summary": "Unactivate License (Offline)", "description": "Unactivate an Ignition license in offline mode. This will download an unactivation notice (`unactivation_message.txt`) file that can be uploaded to Inductive Automation's website to complete the unactivation. Note: gateway will go into trial mode immediately , however the license grant will not be returned to your license until `unactivation_message.txt` is uploaded to Inductive Automation's website.", "parameters": [ { "name": "key", "in": "path", "description": "The Ignition License key.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing required parameter 'key'." }, "404": { "description": "License key not found." }, "500": { "description": "Error unactivating license." }, "200": { "description": "Successfully unactivated the license key and retrieved the unactivation notice file." } }, "deprecated": false } }, "/data/api/v1/activation/reactivate/{key}": { "put": { "tags": [ "license-activation" ], "summary": "Re-Activate License", "description": "Re-activate an Ignition license using the given license key. Upon successful re-activation, details of the license key and it's various attributes will be returned in the response.", "parameters": [ { "name": "key", "in": "path", "description": "The Ignition License key.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "404": { "description": "License key not found." }, "500": { "description": "Error activating license.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "responseCode": { "description": "Optional. Response code from the IA license service", "type": "number", "x-ignition-non-secret": false }, "responseDescription": { "description": "Optional. Description from the IA license service", "type": "string", "x-ignition-non-secret": false }, "failureMessage": { "description": "Optional. Failure message from the IA license service", "type": "string", "x-ignition-non-secret": false }, "data": { "description": "Optional. Data returned from the IA license service", "type": "string", "x-ignition-non-secret": false } } } } } }, "200": { "description": "Licence reactivated successfully.", "content": { "application/json": { "schema": { "properties": { "licenseVersion": { "type": "integer", "description": "License version." }, "cdkey": { "type": "string", "description": "The license key.", "x-ignition-non-secret": true }, "systemHash": { "type": "string", "description": "Deprecated, system identifier for legacy licenses." }, "systemId": { "type": "string", "description": "System identifier for new licenses." }, "platformVersion": { "type": "integer", "description": "The platform version this key applies to." }, "restrictions": { "type": "array", "items": { "properties": { "developer": { "type": "string" }, "value": { "type": "string" } } } }, "modules": { "type": "array", "items": { "properties": { "name": { "type": "string", "description": "The module ID." }, "version": { "type": "integer", "description": "The version of this module." }, "restrictions": { "type": "array", "items": { "properties": { "name": { "type": "string" }, "value": { "type": "string" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/activation/unactivate/{key}": { "post": { "tags": [ "license-activation" ], "summary": "Unactivate License", "description": "Unactivate an Ignition license.", "parameters": [ { "name": "key", "in": "path", "description": "The Ignition License key.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing required parameter 'key'." }, "404": { "description": "License key not found." }, "500": { "description": "Error unactivating license." }, "200": { "description": "Successfully unactivated the license key.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "responseCode": { "description": "Optional. Response code from the IA license service", "type": "number", "x-ignition-non-secret": false }, "responseDescription": { "description": "Optional. Description from the IA license service", "type": "string", "x-ignition-non-secret": false }, "failureMessage": { "description": "Optional. Failure message from the IA license service", "type": "string", "x-ignition-non-secret": false }, "data": { "description": "Optional. Data returned from the IA license service", "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/api-token/generate": { "post": { "tags": [ "api-token" ], "summary": "Generate API Token", "description": "Generates a key and hash pair suitable for a new API Token. Clients should store the key somewhere safe, such as a password manager or secrets manager. The key is the credential that the client will include with each request for authentication purposes. The hash is a secure digest of the key and should be sent to Ignition as the token hash when creating a new API key. WARNING: it is strongly recommended to call this API using https, otherwise the security of the token could be compromised.", "parameters": [], "responses": { "403": { "description": "The request does not have the required write permissions." }, "500": { "description": "A server error occurred while trying to generate the API Token." }, "200": { "description": "Success. Returns a JSON encoding of the generated API Token.", "content": { "application/json": { "schema": { "type": "object", "properties": { "key": { "type": "string", "title": "Key", "description": "The raw API key that the client will include with each request for authentication purposes. Clients should store the key somewhere safe, such as a password manager or secrets manager.", "x-ignition-non-secret": true }, "hash": { "type": "string", "title": "Hash", "description": "A secure digest of the key which should be sent to Ignition as the token hash when creating a new API Token. Clients can safely discard this value once a new API Token is created with this hash." } }, "required": [ "key", "hash" ], "examples": [ { "key": "p3wRdNxufWgMbovC14yPkr9o_GKJlno-K7c99LKexSo", "hash": "c4cNxcsHexJ5mlGPoinRgppto_nEj8mSnacF-ppNCjM" } ] } } } } }, "deprecated": false } }, "/data/api/v1/audit/log/{name}": { "get": { "tags": [ "audit" ], "summary": "Audit Log", "description": "Retrieve audit events for a given audit profile", "parameters": [ { "name": "name", "in": "path", "description": "The name of the audit log to query.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "actorFilter", "in": "query", "description": "A filter string used to restrict the results by actor.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "actorFilter": "admin" } } }, { "name": "actionFilter", "in": "query", "description": "A filter string used to restrict the results by action.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "actionFilter": "some action" } } }, { "name": "targetFilter", "in": "query", "description": "A filter string used to restrict the results by target.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "targetFilter": "admin" } } }, { "name": "valueFilter", "in": "query", "description": "A filter string used to restrict the results by value.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "valueFilter": "some value" } } }, { "name": "systemFilter", "in": "query", "description": "A filter string used to restrict the results by system.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "systemFilter": "sys:Ignition" } } }, { "name": "contextFilter", "in": "query", "description": "An ApplicationScope character set for scopes. 'C' for Client, 'D' for Designer, 'G' for Gateway, 'A' for All.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "contextFilter": "CD" } } }, { "name": "startTime", "in": "query", "description": "Include results starting from this timestamp (Epoch millis).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "startTime": "CD" } } }, { "name": "endTime", "in": "query", "description": "Include results up to this timestamp (Epoch millis).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "endTime": "CD" } } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "400": { "description": "Missing the 'name' path parameter or a parameter is invalid." }, "500": { "description": "An error occurred while querying the audit profile." }, "404": { "description": "The requested audit profile does not exist" }, "200": { "description": "Returns a List of Audit Records.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "action": { "type": "string", "x-ignition-non-secret": false }, "actionTarget": { "type": "string", "x-ignition-non-secret": false }, "actionValue": { "type": "string", "x-ignition-non-secret": false }, "actor": { "type": "string", "x-ignition-non-secret": false }, "actorHost": { "type": "string", "x-ignition-non-secret": false }, "originatingContext": { "type": "number", "x-ignition-non-secret": false }, "originatingSystem": { "type": "string", "x-ignition-non-secret": false }, "statusCode": { "type": "number", "x-ignition-non-secret": false }, "timestamp": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "result": { "type": "string" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/audit/remote-profiles/{serverId}": { "get": { "tags": [ "audit" ], "summary": "Get Remote Audit Profile Names", "description": "Returns a list of available audit log profile names for the provided server id", "parameters": [ { "name": "serverId", "in": "path", "description": "ServerId in encoded form (such as '_0:0:controller') of the remote gateway.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": { "serverId": "_0:0:controller" } } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "500": { "description": "Error accessing remote profiles on the given server." }, "404": { "description": "ServerId is invalid or unavailable." }, "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/backup": { "get": { "tags": [ "gateway-backups" ], "summary": "Get Gateway Backup", "description": "Generates a *.gwbk file that can be downloaded.", "parameters": [ { "name": "includePeerLocal", "in": "query", "description": "In a redundant gateway environment, set this parameter to 'true' to retrieve local-specific files from the\nredundant peer over the gateway network. These files will be stored in the .gwbk alongside the local-specific\nfiles from this gateway.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": { "includePeerLocal": true } } } ], "responses": { "500": { "description": "A server error occurred while creating the .gwbk file" }, "200": { "description": "Backup successfully generated.", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } } }, "deprecated": false }, "post": { "tags": [ "gateway-backups" ], "summary": "Restore Gateway Backup", "description": "Processes and restores a *.gwbk file on this gateway. The gateway will then be restarted.", "parameters": [ { "name": "restoreDisabled", "in": "query", "description": "If `true`, all projects, database connections, OPC connections, etc will be disabled upon restart. Default is `false`", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": { "restoreDisabled": true } } }, { "name": "disableTempProjectBackup", "in": "query", "description": "If `true`, the projects dir will not have a temporary backup created during the restore process. Default is `false`", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": { "disableTempProjectBackup": true } } }, { "name": "renameEnabled", "in": "query", "description": "If `true` will allow overriding the name of the gateway before it is restored. Default is `false`", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": { "renameEnabled": true } } }, { "name": "newName", "in": "query", "description": "The new gateway name to use on restore.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "newName": "MyNewGatewayName" } } }, { "name": "restoreLocal", "in": "query", "description": "Set this parameter to `true` to restore local-specific files on the gateway. These files will be restored to the\ndata/config/local folder and the data/config/resources/local folder. Note that existing files in these folders\nwill be deleted. Default value is `false`.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": { "restoreLocal": true } } } ], "requestBody": { "description": "The contents of the *.gwbk file as a stream of bytes.", "required": true, "content": { "application/octet-stream": {} } }, "responses": { "400": { "description": "The .gwbk is from an Ignition version that cannot be restored in this gateway, or the .gwbk does not contain a valid version." }, "403": { "description": "Gateway restoration is not allowed against a redundant backup gateway." }, "500": { "description": "A server occurred when attempting to apply the restoration file." }, "200": { "description": "Restore operation successfully initiated." } }, "deprecated": false } }, "/data/api/v1/designer/{id}": { "get": { "tags": [ "designer-sessions" ], "summary": "Designer Session Details", "description": "Get details about a specific designer session.", "parameters": [ { "name": "id", "in": "path", "description": "The public ID of the designer session.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "404": { "description": "The designer session was not found." }, "200": { "description": "The designer session details.", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "x-ignition-non-secret": false }, "user": { "type": "string", "x-ignition-non-secret": false }, "uptime": { "type": "number", "x-ignition-non-secret": false }, "lastcomm": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "memory": { "type": "object", "properties": { "used": { "type": "number", "x-ignition-non-secret": false }, "max": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "project": { "type": "string", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "timezone": { "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false }, "delete": { "tags": [ "designer-sessions" ], "summary": "Prune Designer Session", "description": "Prune a dormant designer session.", "parameters": [ { "name": "id", "in": "path", "description": "The public ID of the designer session.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "401": { "description": "The user is not authorized to prune the session." }, "404": { "description": "The designer session was not found." }, "200": { "description": "The session was pruned.", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } } } }, "deprecated": false } }, "/data/api/v1/designers": { "get": { "tags": [ "designer-sessions" ], "summary": "Designer Sessions", "description": "Get a list of active designer sessions.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "x-ignition-non-secret": false }, "user": { "type": "string", "x-ignition-non-secret": false }, "uptime": { "type": "number", "x-ignition-non-secret": false }, "lastcomm": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "memory": { "type": "object", "properties": { "used": { "type": "number", "x-ignition-non-secret": false }, "max": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "project": { "type": "string", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "timezone": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } }, "metrics": { "type": "object", "additionalProperties": { "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } } } } }, "deprecated": false } }, "/data/api/v1/diagnostics/bundle/download": { "get": { "tags": [ "thread-diagnostics" ], "summary": "Download Diagnostics Bundle", "description": "Download the most recently generated diagnostics bundle.", "parameters": [], "responses": {}, "deprecated": false } }, "/data/api/v1/diagnostics/bundle/generate": { "post": { "tags": [ "thread-diagnostics" ], "summary": "Diagnostics Generate Bundle", "description": "Generate a new diagnostics bundle.", "parameters": [], "requestBody": { "description": "The request body should be empty.", "required": false, "content": {} }, "responses": { "200": { "description": "Generation started successfully.", "content": { "application/json": { "schema": { "properties": { "state": { "type": "string" } } } } } } }, "deprecated": false } }, "/data/api/v1/diagnostics/bundle/status": { "get": { "tags": [ "thread-diagnostics" ], "summary": "Diagnostics Bundle Status", "description": "The current status of the diagnostics bundle.", "parameters": [], "responses": { "200": { "description": "State retrieved successfully.", "content": { "application/json": { "schema": { "properties": { "state": { "type": "string" }, "fileSize": { "type": "integer" } } } } } } }, "deprecated": false } }, "/data/api/v1/diagnostics/threads/deadlocks": { "get": { "tags": [ "thread-diagnostics" ], "summary": "Deadlocked Threads", "description": "A list of thread Ids for threads that are deadlocked.", "parameters": [], "responses": { "200": { "description": "List of deadlocked threads retrieved successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "deadlocks": { "type": "array", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/diagnostics/threads/dump/formatted": { "get": { "tags": [ "thread-diagnostics" ], "summary": "Thread Dump (Formatted)", "description": "Thread dump in legacy format for backward compatibility. Note: Not all fields in response shape are guaranteed.", "parameters": [], "responses": { "200": { "description": "Thread dump retrieved successfully.", "content": { "application/json": { "schema": { "properties": { "version": { "type": "string" }, "threads": { "type": "array", "items": { "properties": { "name": { "type": "string" }, "id": { "type": "integer" }, "state": { "type": "string" }, "daemon": { "type": "boolean" }, "system": { "type": "string" }, "scope": { "type": "string" }, "cpuUsage": { "type": "number" }, "waitingFor": { "type": "object", "properties": { "lock": { "type": "string" } } }, "stacktrace": { "type": "array", "items": { "type": "string" } }, "lockedMonitors": { "type": "array", "items": { "type": "object", "properties": { "lock": { "type": "string" }, "frame": { "type": "string" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/diagnostics/threads/threaddump": { "get": { "tags": [ "thread-diagnostics" ], "summary": "Thread Dump", "description": "An object containing information about the various threads running on the Ignition Gateway.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "requestBody": { "description": "The request body should be empty.", "required": false, "content": {} }, "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "threadId": { "type": "number", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "shortName": { "type": "string", "x-ignition-non-secret": false }, "tpcSystem": { "type": "string", "x-ignition-non-secret": false }, "tpcScope": { "type": "number", "x-ignition-non-secret": false }, "threadState": { "type": "string", "x-ignition-non-secret": false }, "cpu": { "type": "string", "x-ignition-non-secret": false }, "daemon": { "type": "boolean", "x-ignition-non-secret": false }, "stacktrace": { "type": "object", "properties": { "header": { "type": "string", "x-ignition-non-secret": false }, "elements": { "type": "array", "items": { "type": "string", "elements": "string" }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "monitors": { "type": "array", "items": { "type": "string", "monitors": "string" }, "x-ignition-non-secret": false }, "locks": { "type": "array", "items": { "type": "string", "locks": "string" }, "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/encryption/encrypt": { "post": { "tags": [ "encryption" ], "summary": "Encrypt arbitrary bytes", "description": "Encrypt an arbitrary payload into a flat JSON Web Encryption structure suitable for embedding as a secret in resource configs.", "parameters": [], "requestBody": { "description": "Payload to encrypt. Can be any content type, including binary and text.", "required": true, "content": { "application/octet-stream": { "schema": {} }, "text/plain": { "schema": { "type": "string" }, "example": "superSecretPassword123!" } } }, "responses": { "500": { "description": "A server error occurred while trying to encrypt the provided plaintext into ciphertext." }, "200": { "description": "Success. Returns a JSON encoding of the ciphertext which can be used as an embedded secret.", "content": { "application/json": { "schema": { "type": "object", "title": "JSON Web Encrypted Data", "description": "JSON Web Encrypted Data encoded using the Flattened JWE JSON Serialization Syntax", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } } } } }, "deprecated": false } }, "/data/api/v1/entity/browse": { "get": { "tags": [ "entity" ], "summary": "Browse Entities", "description": "This endpoint returns a list of matching registered entities, including children up to the depth specified.", "parameters": [ { "name": "path", "in": "query", "description": "Path to a specific entity to browse. Use '/' to separate path components.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "path/to/entity" } }, { "name": "depth", "in": "query", "description": "The depth to browse to. Default is 1.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "integer", "example": 1 } }, { "name": "limit", "in": "query", "description": "When listing children, the limit of children to return. Default is 10. Zero means unlimited", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "integer", "example": 10 } }, { "name": "offset", "in": "query", "description": "When listing children, the number of children to skip. Default is 0.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "integer", "example": 0 } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "path": { "type": "string", "description": "Full path to the entity" }, "name": { "type": "string", "description": "The name of the entity" }, "description": { "type": "object", "description": "Description information about the entity", "properties": { "description": { "type": "string", "description": "A descriptive doc string" }, "iconUrl": { "type": "string", "description": "A URL to an icon" }, "details": { "type": "object", "description": "Additional properties" } } }, "diagnostics": { "type": "object", "description": "Diagnostic information about this entity", "properties": { "metrics": { "type": "object", "description": "Diagnostic metrics", "additionalProperties": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric (if registered)" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } }, "required": [ "metric" ] } }, "healthchecks": { "type": "object", "description": "Diagnostic healthchecks", "additionalProperties": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } }, "enablement": { "type": "object", "description": "Information about whether this entity is enabled or disabled", "properties": { "enabled": { "type": "boolean", "description": "Whether the entity is enabled" }, "enabledStateMutable": { "type": "boolean", "description": "Whether the enabled state is mutable" } } }, "audit": { "type": "object", "description": "Information about when this entity was last changed", "properties": { "lastModified": { "type": "number", "description": "The time the entity was last modified" }, "lastModifiedBy": { "type": "string", "description": "The user who last modified the entity" } } }, "navigation": { "type": "object", "description": "Information about navigational actions eligible for this entity", "properties": { "section": { "type": "string", "description": "The section of the navigation" }, "actions": { "type": "array", "items": { "type": "object", "properties": { "action": { "type": "string", "description": "The action" }, "url": { "type": "string", "description": "The URL" } } } } } }, "children": { "type": "object", "description": "Information about the children of this entity", "properties": { "total": { "type": "number", "description": "The total number of children" }, "offset": { "type": "number", "description": "The offset specified by the request" }, "limit": { "type": "number", "description": "The limit specified by the request" }, "entities": { "type": "array", "items": { "$ref": "#/components/schemas/Entity" } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/entity/enabled": { "post": { "tags": [ "entity" ], "summary": "Set Entity Enabled", "description": "Allows for altering the enabled state of an entity", "parameters": [ { "name": "path", "in": "query", "description": "The path of the entity to enable or disable. Use '/' to separate path components.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "path/to/entity" } }, { "name": "timeout", "in": "query", "description": "The maximum time to wait for the operation to complete, in seconds. Default is 10.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "integer", "example": 10 } } ], "requestBody": { "description": "The new enabled state of the entity", "required": true, "content": { "application/json": { "schema": { "type": "boolean" }, "example": true } } }, "responses": { "400": { "description": "Enabled state is immutable." }, "404": { "description": "Entity not found." }, "408": { "description": "State change did not complete in time." }, "200": { "description": "Success - enabled state changed.", "content": { "application/json": { "schema": { "type": "object", "properties": { "path": { "type": "string", "description": "Full path to the entity" }, "name": { "type": "string", "description": "The name of the entity" }, "description": { "type": "object", "description": "Description information about the entity", "properties": { "description": { "type": "string", "description": "A descriptive doc string" }, "iconUrl": { "type": "string", "description": "A URL to an icon" }, "details": { "type": "object", "description": "Additional properties" } } }, "diagnostics": { "type": "object", "description": "Diagnostic information about this entity", "properties": { "metrics": { "type": "object", "description": "Diagnostic metrics", "additionalProperties": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric (if registered)" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } }, "required": [ "metric" ] } }, "healthchecks": { "type": "object", "description": "Diagnostic healthchecks", "additionalProperties": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } }, "enablement": { "type": "object", "description": "Information about whether this entity is enabled or disabled", "properties": { "enabled": { "type": "boolean", "description": "Whether the entity is enabled" }, "enabledStateMutable": { "type": "boolean", "description": "Whether the enabled state is mutable" } } }, "audit": { "type": "object", "description": "Information about when this entity was last changed", "properties": { "lastModified": { "type": "number", "description": "The time the entity was last modified" }, "lastModifiedBy": { "type": "string", "description": "The user who last modified the entity" } } }, "navigation": { "type": "object", "description": "Information about navigational actions eligible for this entity", "properties": { "section": { "type": "string", "description": "The section of the navigation" }, "actions": { "type": "array", "items": { "type": "object", "properties": { "action": { "type": "string", "description": "The action" }, "url": { "type": "string", "description": "The URL" } } } } } }, "children": { "type": "object", "description": "Information about the children of this entity", "properties": { "total": { "type": "number", "description": "The total number of children" }, "offset": { "type": "number", "description": "The offset specified by the request" }, "limit": { "type": "number", "description": "The limit specified by the request" }, "entities": { "type": "array", "items": { "$ref": "#/components/schemas/Entity" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/entity/section/{section}": { "get": { "tags": [ "entity" ], "summary": "Entities by Section", "description": "Returns Entities relevant to a given UI section", "parameters": [ { "name": "section", "in": "path", "description": "The UI section to find entities for", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "Platform" } }, { "name": "depth", "in": "query", "description": "The depth to browse to. Default is 1.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "integer", "example": 1 } }, { "name": "limit", "in": "query", "description": "When listing children, the limit of children to return. Default is 10. Zero means unlimited", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "integer", "example": 10 } }, { "name": "offset", "in": "query", "description": "When listing children, the number of children to skip. Default is 0.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "integer", "example": 0 } }, { "name": "tag", "in": "query", "description": "If specified, will only return entities that have the given tag. Can be specified multiple times.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "section-overview" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "path": { "type": "string", "description": "Full path to the entity" }, "name": { "type": "string", "description": "The name of the entity" }, "description": { "type": "object", "description": "Description information about the entity", "properties": { "description": { "type": "string", "description": "A descriptive doc string" }, "iconUrl": { "type": "string", "description": "A URL to an icon" }, "details": { "type": "object", "description": "Additional properties" } } }, "diagnostics": { "type": "object", "description": "Diagnostic information about this entity", "properties": { "metrics": { "type": "object", "description": "Diagnostic metrics", "additionalProperties": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric (if registered)" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } }, "required": [ "metric" ] } }, "healthchecks": { "type": "object", "description": "Diagnostic healthchecks", "additionalProperties": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } }, "enablement": { "type": "object", "description": "Information about whether this entity is enabled or disabled", "properties": { "enabled": { "type": "boolean", "description": "Whether the entity is enabled" }, "enabledStateMutable": { "type": "boolean", "description": "Whether the enabled state is mutable" } } }, "audit": { "type": "object", "description": "Information about when this entity was last changed", "properties": { "lastModified": { "type": "number", "description": "The time the entity was last modified" }, "lastModifiedBy": { "type": "string", "description": "The user who last modified the entity" } } }, "navigation": { "type": "object", "description": "Information about navigational actions eligible for this entity", "properties": { "section": { "type": "string", "description": "The section of the navigation" }, "actions": { "type": "array", "items": { "type": "object", "properties": { "action": { "type": "string", "description": "The action" }, "url": { "type": "string", "description": "The URL" } } } } } }, "children": { "type": "object", "description": "Information about the children of this entity", "properties": { "total": { "type": "number", "description": "The total number of children" }, "offset": { "type": "number", "description": "The offset specified by the request" }, "limit": { "type": "number", "description": "The limit specified by the request" }, "entities": { "type": "array", "items": { "$ref": "#/components/schemas/Entity" } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/executors/private": { "get": { "tags": [ "executors" ], "summary": "Private", "description": "Details on the executors running on private execution pools on this Ignition Gateway.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "executorName": { "type": "string", "x-ignition-non-secret": false }, "taskOwners": { "type": "array", "items": { "type": "object", "properties": { "ownerName": { "type": "string", "x-ignition-non-secret": false }, "tasks": { "type": "array", "items": { "type": "object", "properties": { "duration": { "type": "number", "x-ignition-non-secret": false }, "total": { "type": "number", "x-ignition-non-secret": false }, "lastDuration": { "type": "number", "x-ignition-non-secret": false }, "delay": { "type": "number", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "throughput": { "type": "number", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/executors/shared": { "get": { "tags": [ "executors" ], "summary": "Shared", "description": "Details on the executors running on the shared execution pool.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "ownerName": { "type": "string", "x-ignition-non-secret": false }, "tasks": { "type": "array", "items": { "type": "object", "properties": { "duration": { "type": "number", "x-ignition-non-secret": false }, "total": { "type": "number", "x-ignition-non-secret": false }, "lastDuration": { "type": "number", "x-ignition-non-secret": false }, "delay": { "type": "number", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "throughput": { "type": "number", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/gateway-info": { "get": { "tags": [ "gateway-info" ], "summary": "Gateway Info", "description": "Information about this gateway.", "parameters": [], "responses": { "200": { "description": "Gateway information returned successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "redundancyRole": { "type": "string", "x-ignition-non-secret": false }, "edition": { "type": "string", "x-ignition-non-secret": false }, "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "string", "x-ignition-non-secret": false }, "ignitionVersion": { "type": "string", "x-ignition-non-secret": false }, "deploymentMode": { "type": "string", "x-ignition-non-secret": false }, "timeZone": { "type": "string", "x-ignition-non-secret": false }, "timeZoneId": { "type": "string", "x-ignition-non-secret": false }, "jvmVersion": { "type": "string", "x-ignition-non-secret": false }, "allowUnsignedModules": { "type": "boolean", "x-ignition-non-secret": false }, "license": { "type": "object", "properties": { "mode": { "type": "string", "x-ignition-non-secret": false }, "validForVersion": { "type": "number", "x-ignition-non-secret": false }, "expirationDate": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "licenseRestrictions": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/gateway-network-incoming/reset/{resourceName}": { "put": { "tags": [ "gateway-network" ], "summary": "Reset Incoming Connection", "description": "Resets the incoming gateway network connection from a specified remote gateway.", "parameters": [ { "name": "resourceName", "in": "path", "description": "The name of the resource representing the remote gateway.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "404": { "description": "Resource matching provided name not found" }, "200": { "description": "Connection reset successfully." } }, "deprecated": false } }, "/data/api/v1/gateway-network-incoming/toggleApproval/{remoteId}/{approve}": { "put": { "tags": [ "gateway-network" ], "summary": "Toggle Approval", "description": "Toggles the approval status of an incoming connection.", "parameters": [ { "name": "remoteId", "in": "path", "description": "The full ID of the remote gateway (example: test1|c5a8d601-772f-490f-aca9-54073ad58d72).", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "approve", "in": "path", "description": "Whether to approve the connection.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "boolean" } } ], "responses": { "403": { "description": "Approval status toggle forbidden on backup node." }, "404": { "description": "Incoming connection matching provided id not found." }, "200": { "description": "Approval status toggled successfully." } }, "deprecated": false } }, "/data/api/v1/gateway-network-outgoing/reset/{resourceName}": { "put": { "tags": [ "gateway-network" ], "summary": "Reset Outgoing Connection", "description": "Resets the outgoing gateway network connection to a specified remote gateway.", "parameters": [ { "name": "resourceName", "in": "path", "description": "The name of the resource representing the remote gateway.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "404": { "description": "Resource matching provided name not found" }, "200": { "description": "Connection reset successfully." } }, "deprecated": false } }, "/data/api/v1/gateway-network/cancelQueueTasks/{serverId}/{queueId}": { "delete": { "tags": [ "gateway-network" ], "summary": "Cancel Task Queue", "description": "Cancels any tasks pending in the queue. Note that it does *not* cancel outstanding tasks that have already been dispatched to the gateway network connection.", "parameters": [ { "name": "serverId", "in": "path", "description": "The serverId of the Ignition server.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "queueId", "in": "path", "description": "The ID of the queue to be canceled.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Queue cancelled successfully." } }, "deprecated": false } }, "/data/api/v1/gateway-network/crawler": { "get": { "tags": [ "gateway-network" ], "summary": "Gateway Network Crawler", "description": "Runs the Gateway Network crawler to gather information on connected gateways.", "parameters": [ { "name": "ignoreCrawlerCache", "in": "query", "description": "Choose to ignore any existing cache information.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": { "ignoreCrawlerCache": true } } } ], "responses": { "200": { "description": "Crawler data returned successfully.", "content": { "application/json": { "schema": { "properties": { "connections": { "type": "array", "items": { "properties": { "networkAddress": { "type": "string" }, "direction": { "type": "string" }, "connectionStatus": { "type": "string" }, "ssl": { "type": "string" }, "faultCount": { "type": "number" }, "pingTime": { "type": "number" }, "outgoing_rate": { "type": "number" }, "incoming_rate": { "type": "number" }, "systemName": { "type": "string" }, "redundantRole": { "type": "string" }, "connectionId": { "type": "string" }, "version": { "type": "string" }, "edition": { "type": "string" }, "connections": { "type": "array" } } } }, "localGatewayName": { "type": "string" }, "redundantRole": { "type": "string" }, "version": { "type": "string" }, "edition": { "type": "string" } } } } } } }, "deprecated": false } }, "/data/api/v1/gateway-network/diagnostics/getRemoteServerIds": { "get": { "tags": [ "gateway-network" ], "summary": "Get Remote Server Names", "description": "Gets the names of all remote servers.", "parameters": [], "responses": { "200": { "description": "Server names returned successfully." } }, "deprecated": false } }, "/data/api/v1/gateway-network/diagnostics/testConnectionToServer/{serverId}": { "post": { "tags": [ "gateway-network" ], "summary": "Diagnostic Ping", "description": "Pings a remote server to test connectivity.", "parameters": [ { "name": "serverId", "in": "path", "description": "ServerId in encoded form (such as '_0:0:controller') of the remote server to ping.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Remote server response test completed." } }, "deprecated": false } }, "/data/api/v1/gateway-network/gatewayDetail/{serverId}": { "get": { "tags": [ "gateway-network" ], "summary": "Gateway Detail", "description": "Gateway network details about a specific Ignition server.", "parameters": [ { "name": "serverId", "in": "path", "description": "The ID of the Ignition server.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": { "serverId": "_0:0:Ignition8099" } } } ], "responses": { "404": { "description": "Gateway not found" }, "200": { "description": "Gateway details returned successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "queues": { "type": "array", "items": { "type": "object", "properties": { "displayName": { "type": "string", "x-ignition-non-secret": false }, "priority": { "type": "string", "x-ignition-non-secret": false }, "pending": { "type": "number", "x-ignition-non-secret": false }, "active": { "type": "number", "x-ignition-non-secret": false }, "insertRate": { "type": "number", "x-ignition-non-secret": false }, "queueId": { "type": "string", "x-ignition-non-secret": false }, "sendDuration": { "type": "number", "x-ignition-non-secret": false }, "total": { "type": "number", "x-ignition-non-secret": false }, "paused": { "type": "boolean", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "intents": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "description": { "type": "string", "x-ignition-non-secret": false }, "oneMinRate": { "type": "number", "x-ignition-non-secret": false }, "total": { "type": "number", "x-ignition-non-secret": false }, "avgCost": { "type": "number", "x-ignition-non-secret": false }, "direction": { "type": "string", "x-ignition-non-secret": false }, "queue": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/gateway-network/gateways": { "get": { "tags": [ "gateway-network" ], "summary": "Gateways", "description": "Information about all gateways on the Gateway Network that this Ignition server is aware of.", "parameters": [ { "name": "includeRedundantIds", "in": "query", "description": "Optional. Whether to include redundant gateway IDs in the response. Defaults to false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Gateway information returned successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "serverId": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "outgoingTp": { "type": "number", "x-ignition-non-secret": false }, "incomingTp": { "type": "number", "x-ignition-non-secret": false }, "route": { "type": "string", "x-ignition-non-secret": false }, "status": { "type": "string", "x-ignition-non-secret": false }, "remoteVersion": { "type": "string", "x-ignition-non-secret": false }, "pending": { "type": "number", "x-ignition-non-secret": false }, "active": { "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/gateway-network/livediagram": { "get": { "tags": [ "gateway-network" ], "summary": "Gateway Network Live Diagram", "description": "Information describing the relationships between all Ignition systems on this Gateway Network.", "parameters": [], "responses": { "200": { "description": "Live diagram information returned successfully.", "content": { "application/json": { "schema": { "properties": { "localGatewayName": { "type": "string" }, "redundantRole": { "type": "string" }, "version": { "type": "string" }, "edition": { "type": "string" }, "connections": { "type": "array", "items": { "properties": { "networkAddress": { "type": "string" }, "direction": { "type": "string" }, "connectionStatus": { "type": "string" }, "ssl": { "type": "string" }, "pingTime": { "type": "number" }, "outgoing_rate": { "type": "number" }, "incoming_rate": { "type": "number" }, "systemName": { "type": "string" }, "redundantRole": { "type": "string" }, "connectionId": { "type": "string" }, "version": { "type": "string" }, "edition": { "type": "string" }, "connections": { "type": "array" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/gateway-network/pauseQueue/{serverId}/{queueId}": { "put": { "tags": [ "gateway-network" ], "summary": "Pause Task Queue", "description": "Pauses any pending tasks on the given queue, which will cause it to reject any new messages.", "parameters": [ { "name": "serverId", "in": "path", "description": "The serverId of the Ignition server.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "queueId", "in": "path", "description": "The ID of the queue to be paused.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Queue paused successfully." } }, "deprecated": false } }, "/data/api/v1/gateway-network/remote-tag-providers/{serverId}": { "get": { "tags": [ "gateway-network" ], "summary": "Remote Tag Providers", "description": "A list of remote tag providers names for the specified remote Gateway.", "parameters": [ { "name": "serverId", "in": "path", "description": "ServerId in encoded form (such as '_0:0:controller') of the remote gateway.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": { "serverId": "_0:0:controller" } } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "404": { "description": "Missing or invalid serverId." }, "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/gateway-network/resumeQueue/{serverId}/{queueId}": { "put": { "tags": [ "gateway-network" ], "summary": "Resume Task Queue", "description": "Resumes a paused task queue.", "parameters": [ { "name": "serverId", "in": "path", "description": "The serverId of the Ignition server.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "queueId", "in": "path", "description": "The ID of the queue to be resumed.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Queue resumed successfully." } }, "deprecated": false } }, "/data/api/v1/homepage-notes": { "get": { "tags": [ "config-system-properties" ], "summary": "Get Homepage Notes", "description": "Returns the homepage notes text from Gateway Properties.", "parameters": [], "responses": { "500": { "description": "Error retrieving homepage notes." }, "404": { "description": "Resource not found." }, "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "homepageNotes": { "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/launcher/download/{type}/{os}/{arch}": { "get": { "tags": [ "launcher" ], "summary": "Download Launcher", "description": "Downloads a launcher for the given type, OS, and architecture", "parameters": [ { "name": "type", "in": "path", "description": "The type of launcher to download. Valid types are `designer`, `vision_client`, and `workstation`.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "os", "in": "path", "description": "The OS of the launcher to download. Valid OSes are `windows`, `linux`, `mac`", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "arch", "in": "path", "description": "Optional. The architecture of the launcher to download given the `os` parameter. Default is `x86_64`", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "404": { "description": "Launcher does not exist" }, "200": { "description": "Launcher downloading" } }, "deprecated": false } }, "/data/api/v1/launcher/info/{type}/{os}/{arch}": { "get": { "tags": [ "launcher" ], "summary": "Retrieve Launcher information", "description": "Returns launcher information for the given type, OS, and architecture if it exists", "parameters": [ { "name": "type", "in": "path", "description": "The type of launcher to retrieve information on. Valid types are `designer`, `vision_client`, and `workstation`.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "os", "in": "path", "description": "The OS of the launcher to check for. Valid OSes are `windows`, `linux`, `mac`", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "arch", "in": "path", "description": "Optional. The architecture of the launcher to check for given the `os` parameter. Default is `x86_64`", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "404": { "description": "Launcher does not exist" }, "200": { "description": "Launcher Information", "content": { "application/json": { "schema": { "type": "object", "properties": { "url": { "description": "The URL to download the launcher from. when using externally hosted launchers this may point to an external site.", "type": "string", "x-ignition-non-secret": false }, "fileName": { "description": "The name of the file which will be downloaded from the 'url'.", "type": "string", "x-ignition-non-secret": false }, "fileSize": { "description": "The size of the file in bytes. This field is only present when not using externally hosted launchers.", "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/launcher/list": { "get": { "tags": [ "launcher" ], "summary": "List all launchers", "description": "Returns a list of all launcher types", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "404": { "description": "Launcher does not exist" }, "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "url": { "description": "The URL to download the launcher from. when using externally hosted launchers this may point to an external site.", "type": "string", "x-ignition-non-secret": false }, "fileName": { "description": "The name of the file which will be downloaded from the 'url'.", "type": "string", "x-ignition-non-secret": false }, "fileSize": { "description": "The size of the file in bytes. This field is only present when not using externally hosted launchers.", "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/leased-activation/activate": { "post": { "tags": [ "license-activation" ], "summary": "Leased Activation", "description": "Submit a leased activation request", "parameters": [], "requestBody": { "description": "The license key and activation token for the leased activation request.", "required": true, "content": { "application/json": { "schema": { "properties": { "licenseKey": { "type": "string", "x-ignition-non-secret": true }, "activationToken": { "type": "string", "x-ignition-non-secret": true } } }, "example": { "licenseKey": "ABCD-1234", "activationToken": "abcd1234..." } } } }, "responses": { "500": { "description": "Error during leased activation." }, "200": { "description": "Leased activation successful.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "message": { "description": "Optional. Message included with the response.", "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/leased-activation/test-leased-license-server": { "get": { "tags": [ "license-activation" ], "summary": "Test Leased License Service", "description": "Test the availability of the Inductive Automation Leased License Service.", "parameters": [], "responses": { "500": { "description": "Error testing Leased License service." }, "503": { "description": "Leased License service is unavailable.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "message": { "description": "Optional. Message included with the response.", "type": "string", "x-ignition-non-secret": false } } } } } }, "200": { "description": "Leased License service is available.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "message": { "description": "Optional. Message included with the response.", "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/leased-activation/unactivate/{key}": { "post": { "tags": [ "license-activation" ], "summary": "Leased Unactivation", "description": "Cancel a leased activation.", "parameters": [ { "name": "key", "in": "path", "description": "The leased license key to unactivate.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "404": { "description": "License key not found." }, "500": { "description": "Error during unactivation." }, "200": { "description": "Unactivation successful.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "message": { "description": "Optional. Message included with the response.", "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/licenses": { "get": { "tags": [ "license-status" ], "summary": "Licensing Information", "description": "Details about all existing licenses on this Ignition Gateway.", "parameters": [], "responses": { "200": { "description": "License status received successfully.", "content": { "application/json": { "schema": { "properties": { "hardware": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "x-ignition-non-secret": true }, "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "title": { "type": "string" }, "version": { "type": "string" }, "details": { "type": "object", "properties": { "developer": { "type": "string" }, "edition": { "type": "string" }, "platform": { "type": "string" } } } } } } } } }, "embedded": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "x-ignition-non-secret": true }, "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "title": { "type": "string" }, "version": { "type": "string" }, "details": { "type": "object", "properties": { "developer": { "type": "string" }, "edition": { "type": "string" }, "platform": { "type": "string" } } } } } } } } }, "cloud": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "x-ignition-non-secret": true }, "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "title": { "type": "string" }, "version": { "type": "string" }, "details": { "type": "object", "properties": { "developer": { "type": "string" }, "edition": { "type": "string" }, "platform": { "type": "string" } } } } } } } } }, "certificate": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "x-ignition-non-secret": true }, "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "title": { "type": "string" }, "version": { "type": "string" }, "details": { "type": "object", "properties": { "developer": { "type": "string" }, "edition": { "type": "string" }, "platform": { "type": "string" } } } } } } } } }, "leased": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "x-ignition-non-secret": true }, "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "title": { "type": "string" }, "version": { "type": "string" }, "details": { "type": "object", "properties": { "developer": { "type": "string" }, "edition": { "type": "string" }, "platform": { "type": "string" } } } } } }, "status": { "properties": { "status": { "type": "string" }, "exp": { "type": "integer" }, "problem": { "type": "string" }, "retry": { "type": "integer" } } } } } }, "effective": { "type": "object", "properties": { "lastUpdated": { "type": "integer" }, "license": { "type": "object", "properties": { "key": { "type": "string", "x-ignition-non-secret": true }, "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "title": { "type": "string" }, "version": { "type": "string" }, "details": { "type": "object", "properties": { "developer": { "type": "string" }, "edition": { "type": "string" }, "platform": { "type": "string" } } } } } } } } } }, "leasedUnactivateTimeoutMS": { "type": "integer" }, "busy": { "type": "boolean" } } } } } } }, "deprecated": false } }, "/data/api/v1/locales": { "get": { "tags": [ "overview" ], "summary": "Get All Available Locales", "description": "Returns codes and display names for all languages available for use by the gateways.", "parameters": [ { "name": "includeVariants", "in": "query", "description": "Include local variants in results, defaults to true. When true, there will be multiple entries for some languages, `value` will include the variant code, and `label` will include the location name in parentheses.\nFor example French would include variants for France and for Canada (amongst others), resulting in codes with the format fr_FR, fr_CA, etc., and labels French (France) and French (Canada), etc.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "responses": { "200": { "description": "Locales successfully retrieved.", "content": { "application/json": { "schema": { "type": "object", "properties": { "locales": { "type": "array", "items": { "type": "object", "properties": { "value": { "type": "string", "x-ignition-non-secret": false }, "label": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/logs": { "get": { "tags": [ "logging" ], "summary": "Logs", "description": "Returns logs from the Ignition Gateway. Accepts query parameters in order to filter the result set.", "parameters": [ { "name": "properties", "in": "query", "description": "Filters logs using the logger's MDC filtering properties. Must be provided in pairs as a list of strings.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "properties": "role,server,module-name,OPC-UA" } } }, { "name": "minLevel", "in": "query", "description": "Returned logs will be of level 'minLevel' and higher. One of [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF]", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "minLevel": "DEBUG" } } }, { "name": "allowedMarkers", "in": "query", "description": "List of strings of allowed system event IDs.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "allowedMarkers": "clockDrift,metroConnectionEvent" } } }, { "name": "startTime", "in": "query", "description": "Include results starting from this timestamp (Epoch millis).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "number", "example": { "startTime": 1714413384736 } } }, { "name": "endTime", "in": "query", "description": "Include results up to this timestamp (Epoch millis).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "number", "example": { "endTime": 1714413481459 } } }, { "name": "logger", "in": "query", "description": "Filter for particular loggers by name.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "logger": "Reporting" } } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "timestamp": { "type": "integer" }, "loggerName": { "type": "string" }, "level": { "type": "string" }, "message": { "type": "string" }, "stack": { "type": "array" }, "mdc": { "type": "object" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/logs/download": { "get": { "tags": [ "logging" ], "summary": "Download Logs", "description": "Download a copy of the system log from the internal database.", "parameters": [], "responses": {}, "deprecated": false } }, "/data/api/v1/logs/levelreset": { "post": { "tags": [ "logging" ], "summary": "Reset Logger Levels", "description": "Resets all of the logger levels to their default level.", "parameters": [], "responses": { "200": { "description": "Levels reset successfully. List of Loggers returned." } }, "deprecated": false } }, "/data/api/v1/logs/loggers": { "get": { "tags": [ "logging" ], "summary": "Loggers", "description": "Returns a list of all the loggers, their current levels, and the name of the context in which they live.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "level": { "type": "string", "x-ignition-non-secret": false }, "context": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/logs/loggers/{loggerName}": { "post": { "tags": [ "logging" ], "summary": "Set Logger Level", "description": "Set level for a specific logger.", "parameters": [ { "name": "loggerName", "in": "path", "description": "The name of the logger.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "level", "in": "query", "description": "The desired logger level. One of [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF]", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "level": "DEBUG" } } } ], "responses": {}, "deprecated": false } }, "/data/api/v1/logs/monitoring-session": { "post": { "tags": [ "logging" ], "summary": "Monitoring Session Logs", "description": "Creates a logging session that allows setting of levels and filters that will expire when the web session does. Logging levels will be set back to their defaults once this session expires.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "requestBody": { "description": "A JSON object containing the MDC filtering criteria and the log level to set.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "sessionKey": { "description": "Unique identifier to use for this monitored session. Gets used in conjunction with the servlet session id.", "type": "string", "x-ignition-non-secret": true }, "level": { "description": "The level to set the logger.", "type": "string", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ], "x-ignition-non-secret": false }, "filters": { "description": "List of key:value pairs for MDC filtering.", "type": "array", "items": { "type": "object" }, "x-ignition-non-secret": false }, "since": { "description": "Time to start showing logging events from.", "type": "number", "x-ignition-non-secret": false } } }, "example": { "sessionKey": "my_database_session_name", "level": "TRACE", "filters": [ { "database": "example_connection_name" } ], "since": 0 } } } }, "responses": { "400": { "description": "Malformed body or missing parameter" }, "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "timestamp": { "type": "integer" }, "loggerName": { "type": "string" }, "level": { "type": "string" }, "message": { "type": "string" }, "stack": { "type": "array" }, "mdc": { "type": "object" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/logs/properties": { "post": { "tags": [ "logging" ], "summary": "Modify Logger Context Properties (Bulk)", "description": "Bulk operation for setting or removing LoggingFilter properties. In a POST body, supply a JSON\nobject in the following shapes. For adding new properties:\n```\n{\n \"apply\": [\n {\n \"key\": \"route-group\",\n \"vals\": [\n \"config\"\n ],\n \"lvl\": \"DEBUG\"\n }\n ]\n}\n```\nTo remove properties:\n```\n{\n \"remove\": [\n {\n \"key\": \"route-group\",\n \"vals\": [\n \"config\"\n ],\n \"lvl\": \"DEBUG\"\n }\n ]\n}\n```\n", "parameters": [], "responses": {}, "deprecated": false } }, "/data/api/v1/logs/properties/applied": { "get": { "tags": [ "logging" ], "summary": "Applied Logger Context Properties", "description": "A JSON Object containing the all currently applied logging properties.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "x-ignition-non-secret": true }, "values": { "type": "array", "items": { "type": "object", "properties": { "value": { "type": "string", "x-ignition-non-secret": false }, "lvl": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/logs/properties/registered": { "get": { "tags": [ "logging" ], "summary": "Registered Logger Context Properties", "description": "A JSON Object containing the all currently registered logging properties.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string", "x-ignition-non-secret": true }, "values": { "type": "array", "items": { "type": "string", "values": "string" }, "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/logs/properties/{key}": { "post": { "tags": [ "logging" ], "summary": "Add Logger Context Property", "description": "Adds the specified property to the current logging context.", "parameters": [ { "name": "key", "in": "path", "description": "The registry key to add.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "value", "in": "query", "description": "The name of the logger property to set.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "value": "client" } } }, { "name": "level", "in": "query", "description": "The level to set the specified logger. One of [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF]", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "level": "DEBUG" } } } ], "responses": {}, "deprecated": false }, "delete": { "tags": [ "logging" ], "summary": "Remove Logger Context Property", "description": "Removes the specified property from the current logging context. If only the key is specified, all values under that key will be removed.", "parameters": [ { "name": "key", "in": "path", "description": "The property key to remove.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "value", "in": "query", "description": "The name of the logger property to set.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "value": "client" } } }, { "name": "level", "in": "query", "description": "The level to set the specified logger. One of [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF]", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "level": "DEBUG" } } } ], "responses": {}, "deprecated": false } }, "/data/api/v1/managed-tag-provider": { "put": { "tags": [ "managed-tag-provider" ], "summary": "Managed Tag Provider", "description": "This endpoint modifies the Tag Reference Store property of a Managed Tag Provider.", "parameters": [ { "name": "tagProviderName", "in": "query", "description": "The name of the Managed Tag Provider to modify.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "exampleProvider" } } ], "requestBody": { "description": "The new state of enableTagReferenceStore", "required": true, "content": { "application/json": { "schema": { "type": "boolean" }, "example": true } } }, "responses": { "200": { "description": "Success - enableTagReferenceStore state changed.", "content": { "application/json": { "schema": { "properties": { "tagProviderName": { "type": "string" }, "enableTagReferenceStore": { "type": "boolean" } } } } } } }, "deprecated": false } }, "/data/api/v1/mode": { "get": { "tags": [ "config-management" ], "summary": "Deployment Modes", "description": "Returns a list of the available deployment modes", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the mode", "type": "string", "x-ignition-non-secret": false }, "title": { "description": "A short title for the mode.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A few sentences describing the purpose of the mode.", "type": "string", "x-ignition-non-secret": false }, "resourceCount": { "description": "Number of resources defined in this mode", "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-management" ], "summary": "Create Deployment Mode", "description": "Creates a new deployment mode resource collection.", "parameters": [], "requestBody": { "description": "Configuration of the new mode", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "Name of the mode", "type": "string", "x-ignition-non-secret": false }, "title": { "description": "A short title for the mode.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A few sentences describing the purpose of the mode.", "type": "string", "x-ignition-non-secret": false } } } } } }, "responses": { "400": { "description": "Bad Request - invalid body, or illegal mode name" }, "500": { "description": "Failed to create mode" }, "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "Name of the mode", "type": "string", "x-ignition-non-secret": false }, "title": { "description": "A short title for the mode.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A few sentences describing the purpose of the mode.", "type": "string", "x-ignition-non-secret": false }, "resourceCount": { "description": "Number of resources defined in this mode", "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/mode/{name}": { "put": { "tags": [ "config-management" ], "summary": "Update Deployment Mode", "description": "Updates or renames a deployment mode.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the mode to update", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "requestBody": { "description": "Configuration of the new mode.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "Name of the mode", "type": "string", "x-ignition-non-secret": false }, "title": { "description": "A short title for the mode.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A few sentences describing the purpose of the mode.", "type": "string", "x-ignition-non-secret": false } } } } } }, "responses": { "400": { "description": "Bad Request - invalid body, or illegal mode name" }, "500": { "description": "Failed to create mode" }, "404": { "description": "Mode not found" }, "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "Name of the mode", "type": "string", "x-ignition-non-secret": false }, "title": { "description": "A short title for the mode.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A few sentences describing the purpose of the mode.", "type": "string", "x-ignition-non-secret": false }, "resourceCount": { "description": "Number of resources defined in this mode", "type": "number", "x-ignition-non-secret": false } } } } } }, "409": { "description": "Mode name already in use." } }, "deprecated": false }, "delete": { "tags": [ "config-management" ], "summary": "Delete Deployment Mode", "description": "Deletes a deployment mode", "parameters": [ { "name": "name", "in": "path", "description": "The name of the mode to update", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Bad Request - invalid body, or illegal mode name" }, "500": { "description": "Failed to delete mode" }, "404": { "description": "Mode not found" }, "200": { "description": "Mode deleted", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string", "x-ignition-non-secret": false }, "resourceCount": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/modules/certificate": { "get": { "tags": [ "modules" ], "summary": "View Certificate Information", "description": "Get details about the certificate for a given module.", "parameters": [ { "name": "moduleId", "in": "query", "description": "The ID of the module to get the certificate for.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "moduleId": "com.example.moduleid" } } } ], "responses": { "500": { "description": "Error retrieving the certificate." }, "404": { "description": "No certificate found for module." }, "200": { "description": "Module certificate returned successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "notValidAfter": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "notValidBefore": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "subjectName": { "type": "string", "x-ignition-non-secret": false }, "issuerName": { "type": "string", "x-ignition-non-secret": false }, "selfSigned": { "type": "boolean", "x-ignition-non-secret": false }, "serialNumber": { "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false }, "post": { "tags": [ "modules" ], "summary": "Accept Certificate", "description": "Accept a module's certificate.", "parameters": [ { "name": "moduleId", "in": "query", "description": "The ID of the module to accept the certificate for.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "moduleId": "com.example.moduleid" } } } ], "responses": { "400": { "description": "Required parameter or certificate missing." }, "200": { "description": "Module certificate accepted.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "x-ignition-non-secret": false }, "message": { "type": "string", "x-ignition-non-secret": false } } } } } }, "409": { "description": "Certificate already accepted." } }, "deprecated": false } }, "/data/api/v1/modules/eula": { "get": { "tags": [ "modules" ], "summary": "View EULA", "description": "Retrieves the given module's EULA as HTML.", "parameters": [ { "name": "moduleId", "in": "query", "description": "The ID of the module to retrieve the EULA from.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "moduleId": "com.example.moduleid" } } } ], "responses": { "500": { "description": "Error retrieving EULA from module." }, "404": { "description": "No EULA found for module." }, "200": { "description": "EULA successfully retrieved for module." } }, "deprecated": false }, "post": { "tags": [ "modules" ], "summary": "Accept EULA", "description": "Accept a module's EULA", "parameters": [ { "name": "moduleId", "in": "query", "description": "The ID of the module to accept the EULA for.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "moduleId": "com.example.moduleid" } } } ], "responses": { "400": { "description": "Required parameter or license file missing." }, "200": { "description": "EULA accepted successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "x-ignition-non-secret": false }, "message": { "type": "string", "x-ignition-non-secret": false } } } } } }, "409": { "description": "EULA already accepted." } }, "deprecated": false } }, "/data/api/v1/modules/healthy": { "get": { "tags": [ "modules" ], "summary": "All Healthy Modules", "description": "A list of all \"healthy\" (non-quarantined) modules on this Ignition Gateway.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "description": "The ID of the module.", "type": "string", "x-ignition-non-secret": false }, "onStartup": { "description": "The action to be performed on the module on the next gateway startup.", "type": "string", "x-ignition-non-secret": false }, "shouldUpgrade": { "description": "Module is pending upgrade on next gateway startup.", "type": "boolean", "x-ignition-non-secret": false }, "name": { "description": "The module name.", "type": "string", "x-ignition-non-secret": false }, "version": { "description": "Module version.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Module description. Only available on fully loaded modules.", "type": "string", "x-ignition-non-secret": false }, "docUrl": { "description": "URL to module documentation, if available. Only available on fully loaded modules.", "type": "string", "x-ignition-non-secret": false }, "vendorId": { "description": "Vendor ID. Only available on fully loaded modules.", "type": "number", "x-ignition-non-secret": false }, "vendorName": { "description": "Vendor Name. Only available on fully loaded modules.", "type": "string", "x-ignition-non-secret": false }, "selfSigned": { "description": "If this module is signed with a self-signed certificate.", "type": "boolean", "x-ignition-non-secret": false }, "state": { "description": "Module state. Only available on fully loaded modules.", "type": "string", "x-ignition-non-secret": false }, "faultCause": { "description": "For modules that fail to load, this is the provided fault cause.", "type": "string", "x-ignition-non-secret": false }, "exception": { "description": "For modules that fail to load, this is the exception thrown.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "faultTime": { "description": "For modules that fail to load, this is the time of the fault.", "type": "string", "x-ignition-non-secret": false }, "licenseState": { "description": "Module license state. Only available on fully loaded modules.", "type": "string", "x-ignition-non-secret": false }, "startupTime": { "description": "The time the module started. Only available on fully loaded modules.", "type": "string", "x-ignition-non-secret": false }, "restrictions": { "description": "License parameters/restriction for the module. Only available on fully loaded modules.", "type": "object", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/modules/install": { "post": { "tags": [ "modules" ], "summary": "Install Module", "description": "Completes installation of a previously uploaded module", "parameters": [ { "name": "moduleId", "in": "query", "description": "The moduleId of the module to be installed.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "moduleId": "com.example.moduleid" } } } ], "responses": { "400": { "description": "Missing parameter: moduleId" }, "200": { "description": "Module installed successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "filename": { "type": "string", "x-ignition-non-secret": false }, "onStartup": { "type": "string", "x-ignition-non-secret": false }, "certFingerprint": { "type": "string", "x-ignition-non-secret": false }, "licenseAgreementHash": { "type": "number", "x-ignition-non-secret": false }, "upgradeVersion": { "type": "string", "x-ignition-non-secret": false }, "upgradeFilename": { "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/modules/quarantined": { "get": { "tags": [ "modules" ], "summary": "Quarantined Modules", "description": "Information about all quarantined modules on this Ignition Gateway.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "description": "The ID of the module.", "type": "string", "x-ignition-non-secret": false }, "name": { "description": "The module name.", "type": "string", "x-ignition-non-secret": false }, "version": { "description": "Module version.", "type": "string", "x-ignition-non-secret": false }, "reason": { "description": "The reason this module was quarantined.", "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/modules/toggle-state": { "put": { "tags": [ "modules" ], "summary": "Toggle Module State", "description": "Enable and disable Ignition Modules. Allows for operating on multiple modules per request.", "parameters": [], "requestBody": { "description": "A JSON object containing two lists of module IDs. One list for enabling, another for disabling.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "enable": { "type": "array", "items": { "type": "string", "enable": "string" }, "x-ignition-non-secret": false }, "disable": { "type": "array", "items": { "type": "string", "disable": "string" }, "x-ignition-non-secret": false } } }, "example": { "enable": [ "com.example.moduleid.a", "com.example.moduleid.b" ], "disable": [ "com.example.moduleid.c", "com.example.moduleid.d" ] } } } }, "responses": { "500": { "description": "Error reading request body" }, "200": { "description": "An object containing success state, and another object containing lists of modules that failed to enable/disable.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "x-ignition-non-secret": false }, "failedUpdates": { "type": "object", "properties": { "enable": { "type": "array", "items": { "type": "string", "enable": "string" }, "x-ignition-non-secret": false }, "disable": { "type": "array", "items": { "type": "string", "disable": "string" }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/modules/uninstall": { "delete": { "tags": [ "modules" ], "summary": "Uninstall Module[s]", "description": "Configures module[s] to be uninstalled on the next Gateway restart.", "parameters": [], "requestBody": { "description": "A JSON object containing a list of module IDs to uninstall.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "uninstall": { "type": "array", "items": { "type": "string", "uninstall": "string" }, "x-ignition-non-secret": false } } }, "example": { "uninstall": [ "com.example.moduleid.a", "com.example.moduleid.b" ] } } } }, "responses": { "500": { "description": "Error reading request body" }, "200": { "description": "Module set for uninstallation successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "x-ignition-non-secret": false }, "message": { "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/modules/upload": { "post": { "tags": [ "modules" ], "summary": "Upload Module", "description": "Upload an Ignition Module to prepare for installation.", "parameters": [ { "name": "fileName", "in": "query", "description": "Used as the filename when the .modl is uploaded to the gateway's file system. This is arbitrary and will result in the module being stored at the module root location (typically `{ignition-install-dir}/user-lib/modules/{fileName}`)", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "fileName": "Perspective-module-signed.modl" } } } ], "requestBody": { "description": "The module .modl file, sent in the request body as a binary stream", "required": true, "content": { "binary stream": {} } }, "responses": { "400": { "description": "Missing parameter: fileName or error reading module file." }, "200": { "description": "Module file uploaded successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "moduleId": { "type": "string", "x-ignition-non-secret": false }, "licenseAccepted": { "type": "boolean", "x-ignition-non-secret": false }, "certAccepted": { "type": "boolean", "x-ignition-non-secret": false }, "containsEula": { "type": "boolean", "x-ignition-non-secret": false }, "containsCert": { "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/overview": { "get": { "tags": [ "overview" ], "summary": "Gateway Overview", "description": "General status information about this Ignition Gateway.", "parameters": [], "responses": { "200": { "description": "Overview information retrieved successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "version": { "type": "string", "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "role": { "type": "string", "enum": [ "Independent", "Backup", "Master" ], "x-ignition-non-secret": false }, "activityLevel": { "type": "string", "enum": [ "Undecided", "Cold", "Warm", "Hot", "Active" ], "x-ignition-non-secret": false }, "projectState": { "type": "string", "enum": [ "Unknown", "Incompatible", "Modules_Incompatible", "OutOfDate", "Good" ], "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "peerStatus": { "type": "object", "properties": { "info": { "type": "object", "properties": { "address": { "type": "string", "x-ignition-non-secret": false }, "version": { "type": "object", "properties": { "major": { "type": "number", "x-ignition-non-secret": false }, "minor": { "type": "number", "x-ignition-non-secret": false }, "rev": { "type": "number", "x-ignition-non-secret": false }, "build": { "type": "number", "x-ignition-non-secret": false }, "beta": { "type": "number", "x-ignition-non-secret": false }, "rc": { "type": "number", "x-ignition-non-secret": false }, "dev": { "type": "boolean", "x-ignition-non-secret": false }, "snapshot": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "level": { "type": "string", "enum": [ "Undecided", "Cold", "Warm", "Hot", "Active" ], "x-ignition-non-secret": false }, "projState": { "type": "string", "enum": [ "Unknown", "Incompatible", "Modules_Incompatible", "OutOfDate", "Good" ], "x-ignition-non-secret": false }, "moduleHash": { "type": "number", "x-ignition-non-secret": false }, "activeTime": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "java": { "type": "object", "properties": { "version": { "type": "string", "x-ignition-non-secret": false }, "vendor": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "os": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "arch": { "type": "string", "x-ignition-non-secret": false }, "version": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "cloudEnv": { "type": "object", "x-ignition-non-secret": false }, "uptime": { "type": "number", "x-ignition-non-secret": false }, "timezone": { "type": "string", "x-ignition-non-secret": false }, "locale": { "type": "string", "x-ignition-non-secret": false }, "time": { "type": "string", "x-ignition-non-secret": false }, "memory": { "type": "array", "x-ignition-non-secret": false }, "cpu": { "type": "number", "x-ignition-non-secret": false }, "disk": { "type": "object", "properties": { "total": { "type": "number", "x-ignition-non-secret": false }, "used": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "license": { "type": "object", "properties": { "state": { "type": "string", "x-ignition-non-secret": false }, "trialRemaining": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "gatewayName": { "type": "string", "x-ignition-non-secret": false }, "libPath": { "type": "string", "x-ignition-non-secret": false }, "processId": { "type": "number", "x-ignition-non-secret": false }, "nics": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "displayName": { "type": "string", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "gcNames": { "type": "string", "x-ignition-non-secret": false }, "driftRate": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/overview/connections": { "get": { "tags": [ "overview" ], "summary": "Connections Overview", "description": "A list of various connections (DB, OPC, etc.) on this Ignition Gateway.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string", "x-ignition-non-secret": false }, "img": { "type": "string", "x-ignition-non-secret": false }, "actions": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string", "x-ignition-non-secret": false }, "url": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "lines": { "type": "array", "items": { "type": "object", "properties": { "text": { "type": "string", "x-ignition-non-secret": false }, "error": { "type": "boolean", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/overview/gan": { "get": { "tags": [ "overview" ], "summary": "Gateway Network", "description": "Information about the Gateway Network.", "parameters": [], "responses": { "200": { "description": "Gateway Network information retrieved successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "totalConnections": { "type": "number", "x-ignition-non-secret": false }, "runningConnections": { "type": "number", "x-ignition-non-secret": false }, "outgoingByteRate": { "type": "number", "x-ignition-non-secret": false }, "incomingByteRate": { "type": "number", "x-ignition-non-secret": false }, "remoteGateways": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/overview/name": { "get": { "tags": [ "overview" ], "summary": "Gateway Name", "description": "This Ignition Gateway's name.", "parameters": [], "responses": { "200": { "description": "Gateway name retrieved successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "gatewayName": { "type": "string", "x-ignition-non-secret": false }, "cleanGatewayName": { "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/overview/problems": { "get": { "tags": [ "overview" ], "summary": "Problems Overview", "description": "A list of objects representing problems on the gateway that are considered 'critical'", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string", "x-ignition-non-secret": false }, "description": { "type": "string", "x-ignition-non-secret": false }, "resolution": { "type": "string", "x-ignition-non-secret": false }, "url": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/projects": { "post": { "tags": [ "projects" ], "summary": "Create Project", "description": "Create a new project on this Ignition Gateway.", "parameters": [], "requestBody": { "description": "A JSON object containing the properties needed to create a new project. `name` is required, all other fields optional.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The name of the Ignition Project", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The description of the Ignition Project", "type": "string", "x-ignition-non-secret": false }, "title": { "description": "The title of the Ignition Project", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the Ignition Project is enabled", "type": "boolean", "x-ignition-non-secret": false }, "parent": { "description": "The parent of this Ignition Project, if any", "type": "string", "x-ignition-non-secret": false }, "inheritable": { "description": "Whether this Ignition Project is inheritable", "type": "boolean", "x-ignition-non-secret": false }, "defaultDb": { "description": "The default database for the Ignition Project", "type": "string", "x-ignition-non-secret": false }, "tagProvider": { "description": "The Tag Provider for the Ignition Project", "type": "string", "x-ignition-non-secret": false }, "userSource": { "description": "The User Source for the Ignition Project", "type": "string", "x-ignition-non-secret": false } }, "required": [ "name" ] } } } }, "responses": { "400": { "description": "Missing required parameter 'name'.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "403": { "description": "Cannot create project on edge edition or non-master gateway.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "500": { "description": "Error creating project.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success. Ignition project created.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Project name already exists.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "415": { "description": "Request content type not supported. The following content types are supported: application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/projects/copy": { "post": { "tags": [ "projects" ], "summary": "Copy Project", "description": "Create a copy of a project on this Ignition Gateway.", "parameters": [], "requestBody": { "description": "A JSON object containing the name of the Ignition Project to be copied.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "fromName": { "description": "The name of the Ignition Project to copy.", "type": "string", "x-ignition-non-secret": false }, "toName": { "description": "The new name for the Ignition Project.", "type": "string", "x-ignition-non-secret": false } } }, "example": { "fromName": "MyProject", "toName": "RenamedProject" } } } }, "responses": { "304": { "description": "Error copying project. No changes made.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "403": { "description": "Copy project not allowed.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "404": { "description": "Project not found.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Project successfully copied.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Project name already exists.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "415": { "description": "Request content type not supported. The following content types are supported: application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/projects/export/{name}": { "get": { "tags": [ "projects" ], "summary": "Export Project", "description": "Exports the given project as a zip archive.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the Ignition Project to export.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "403": { "description": "Project may not be exported." }, "404": { "description": "Project not found." }, "200": { "description": "Project zip archive exported successfully." } }, "deprecated": false } }, "/data/api/v1/projects/find/{name}": { "get": { "tags": [ "projects" ], "summary": "Project Details", "description": "Get information about a specific Ignition Project.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the Ignition Project.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing parameter 'name' is required." }, "404": { "description": "Project not found." }, "200": { "description": "Project successfully returned.", "content": { "application/json": { "schema": { "properties": { "name": { "type": "string", "description": "The name of the Ignition Project" }, "description": { "type": "string", "description": "The description of the Ignition Project" }, "title": { "type": "string", "description": "The title of the Ignition Project" }, "enabled": { "type": "boolean", "description": "Whether the Ignition Project is enabled" }, "parent": { "type": "string", "description": "The parent of this Ignition Project, if any" }, "inheritable": { "type": "boolean", "description": "Whether the Ignition Project is inheritable" }, "invalidParent": { "type": "boolean", "description": "Whether this Ignition Project's parent is valid" }, "mutable": { "type": "boolean", "description": "Whether this Ignition Project is mutable" }, "defaultDb": { "type": "string", "description": "The default database for the Ignition Project" }, "tagProvider": { "type": "string", "description": "The Tag Provider for the Ignition Project" }, "userSource": { "type": "string", "description": "The User Source for the Ignition Project" } } } } } } }, "deprecated": false } }, "/data/api/v1/projects/import/{name}": { "post": { "tags": [ "projects" ], "summary": "Import Project", "description": "Import a project into this Ignition Gateway.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the Ignition Project.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "overwrite", "in": "query", "description": "Set `true` to overwrite an existing project of the same name.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "overwrite": "true" } } } ], "requestBody": { "description": "Project zip file to import. This should be sent as binary data in the request body.", "required": true, "content": { "application/zip": {} } }, "responses": { "403": { "description": "Cannot overwrite specified project.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "500": { "description": "Error importing project.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Project successfully imported.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Cannot import project. Project already exists and overwriting is not allowed in this request.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "415": { "description": "Request content type not supported. The following content types are supported: application/zip", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/projects/list": { "get": { "tags": [ "projects" ], "summary": "List All Projects", "description": "List all runnable project on this Ignition Gateway.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "name": { "type": "string", "description": "The name of the Ignition Project" }, "description": { "type": "string", "description": "The description of the Ignition Project" }, "title": { "type": "string", "description": "The title of the Ignition Project" }, "enabled": { "type": "boolean", "description": "Whether the Ignition Project is enabled" }, "parent": { "type": "string", "description": "The parent of this Ignition Project, if any" }, "inheritable": { "type": "boolean", "description": "Whether the Ignition Project is inheritable" }, "invalidParent": { "type": "boolean", "description": "Whether this Ignition Project's parent is valid" }, "mutable": { "type": "boolean", "description": "Whether this Ignition Project is mutable" }, "defaultDb": { "type": "string", "description": "The default database for the Ignition Project" }, "tagProvider": { "type": "string", "description": "The Tag Provider for the Ignition Project" }, "userSource": { "type": "string", "description": "The User Source for the Ignition Project" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/projects/names": { "get": { "tags": [ "projects" ], "summary": "List All Project Names", "description": "List names of all projects on this Ignition Gateway.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/projects/parents": { "get": { "tags": [ "projects" ], "summary": "List All Valid Parent Projects", "description": "List names of all valid parent projects on this Ignition Gateway.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/projects/parents/{name}": { "get": { "tags": [ "projects" ], "summary": "List Valid Parent Project Names For Project", "description": "List names of valid parent projects for a given project on this Ignition Gateway.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the Ignition Project to get valid parent projects.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/projects/rename/{name}": { "post": { "tags": [ "projects" ], "summary": "Rename Project", "description": "Rename a project on this Ignition Gateway.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the current Ignition Project", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The request body specified the new name of the Ignition Project", "required": true, "content": { "application/json": { "schema": { "properties": { "name": { "type": "string", "description": "The new name for the specified Ignition Project." } } }, "example": { "name": "MyNewProjectName" } } } }, "responses": { "400": { "description": "Error renaming project.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "403": { "description": "Rename project not allowed.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "404": { "description": "Project not found.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Project successfully renamed.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "415": { "description": "Request content type not supported. The following content types are supported: application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/projects/{name}": { "put": { "tags": [ "projects" ], "summary": "Modify Project", "description": "Modify an Ignition Project.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the Ignition Project to edit.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "requestBody": { "description": "Project configuration details. All fields are optional.", "required": true, "content": { "application/json": { "schema": { "properties": { "description": { "type": "string", "description": "The description of the Ignition Project." }, "title": { "type": "string", "description": "The title of the Ignition Project." }, "enabled": { "type": "boolean", "description": "Enable or disable the Ignition Project." }, "parent": { "type": "string", "description": "The parent of the project if one exists." }, "inheritable": { "type": "boolean", "description": "Whether or not this project is inheritable." }, "userSource": { "type": "string", "description": "Set the default user source for this project." }, "tagProvider": { "type": "string", "description": "Set the default tag provider for this project." }, "defaultDb": { "type": "string", "description": "Set the default database for this project." } } } } } }, "responses": { "400": { "description": "Project name blank. URL parameter 'name' is required.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "304": { "description": "Project not modified.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "403": { "description": "Edit not allowed.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "500": { "description": "Error saving project edits.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "404": { "description": "Project not found.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Project successfully modified.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "415": { "description": "Request content type not supported. The following content types are supported: application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "delete": { "tags": [ "projects" ], "summary": "Delete an Ignition Project", "description": "Delete a project from this Ignition Gateway.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the Ignition Project to delete.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": { "confirm": "true" } } } ], "responses": { "403": { "description": "Delete not allowed.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "500": { "description": "Error deleting project.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "404": { "description": "Project not found.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "503": { "description": "Unable to delete project on non-master gateway.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success or confirm required.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "description": "Whether the request was successful.", "type": "boolean", "x-ignition-non-secret": false }, "changes": { "description": "A list of Projects that were affected by this request.", "type": "array", "x-ignition-non-secret": false }, "problem": { "description": "The exception that was thrown, if any.", "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/redundancy": { "get": { "tags": [ "redundancy" ], "summary": "Status", "description": "Information on the current status of the redundancy system.", "parameters": [], "responses": { "200": { "description": "Redundancy status returned successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "projectState": { "type": "string", "x-ignition-non-secret": false }, "activityLevel": { "type": "string", "x-ignition-non-secret": false }, "localId": { "type": "string", "x-ignition-non-secret": false }, "peerConnected": { "type": "boolean", "x-ignition-non-secret": false }, "peerId": { "type": "string", "x-ignition-non-secret": false }, "hasConfigAccess": { "type": "boolean", "x-ignition-non-secret": false }, "syncPending": { "type": "boolean", "x-ignition-non-secret": false }, "failoverPending": { "type": "boolean", "x-ignition-non-secret": false }, "uptime": { "type": "number", "x-ignition-non-secret": false }, "lastSyncTimestamp": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/redundancy/config": { "get": { "tags": [ "redundancy" ], "summary": "Get Redundancy Config", "description": "The configuration of the redundancy system. Note that the gatewayNetworkSetup section only applies to the redundant backup.", "parameters": [], "responses": { "200": { "description": "Redundancy config returned successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "gatewayNetworkSetup": { "description": "Gateway network settings to establish a connection to the redundant master.", "type": "object", "properties": { "host": { "description": "The address of the master gateway.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "The Gateway Network port of the master gateway.", "type": "number", "x-ignition-non-secret": false }, "enableSsl": { "description": "Whether to use SSL to connect to the master gateway.", "type": "boolean", "x-ignition-non-secret": false }, "pingRate": { "description": "How often, in milliseconds, to send a ping to the master.", "type": "number", "x-ignition-non-secret": false }, "pingTimeout": { "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.", "type": "number", "x-ignition-non-secret": false }, "pingMaxMissed": { "description": "The amount of missed pings that will force the connection to the master to be considered faulted.", "type": "number", "x-ignition-non-secret": false }, "websocketTimeout": { "description": "The maximum time, in milliseconds, allowed for a new web socket to connect to the master.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeout": { "description": "The maximum time, in milliseconds, allowed to establish an HTTP connection to the master.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeout": { "description": "The maximum time, in milliseconds, allowed to read or send HTTP data to the master.", "type": "number", "x-ignition-non-secret": false }, "sendThreads": { "description": "Number of threads to use for sending messages.", "type": "number", "x-ignition-non-secret": false }, "receiveThreads": { "description": "Number of threads to use for receiving messages.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "activeHistoryLevel": { "description": "If Partial, history will be cached instead of stored while the master is down. After the master and the backup reconnect, the cached history data will be compared to the master's stored history data to eliminate data overlaps from being stored.", "type": "string", "enum": [ "Partial", "Full" ], "x-ignition-non-secret": false }, "joinWaitTime": { "description": "The time in milliseconds that the system will wait at startup for the other redundant node to connect. If this time is exceeded without establishing contact, this node will become active regardless of node role.", "type": "number", "x-ignition-non-secret": false }, "role": { "description": "Enable or disable redundancy, and specify this node's role.", "type": "string", "enum": [ "Independent", "Backup", "Master" ], "x-ignition-non-secret": false }, "standbyActivityLevel": { "description": "If set to Warm, the backup node will establish subscriptions to other systems such as OPC-UA. These subscriptions will remain inert until the node becomes active. Using the Warm setting can help reduce failover time.", "type": "string", "enum": [ "Cold", "Warm" ], "x-ignition-non-secret": false }, "syncTimeoutSecs": { "description": "The maximum time (in seconds) allowed for a redundancy sync operation. Sync operations that exceed this value will time out. ", "type": "number", "x-ignition-non-secret": false }, "autoDetectLocal": { "description": "If true, the system will automatically detect which network interface to use. Most commonly disabled on systems with multiple network cards, in order to explicitly specify which interface to use.", "type": "boolean", "x-ignition-non-secret": false }, "localInterface": { "description": "The IP address of the network interface to use for redundancy. Only used if auto-detect is turned off.", "type": "string", "x-ignition-non-secret": false }, "masterRecoveryMode": { "description": "When set to Manual, the backup node will remain active after reconnecting to the master. A failover operation must be manually initiated on the gateway redundancy page for the master to become active again.", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "useActiveUptimeToResolveConflict": { "description": "When a redundancy data conflict is detected between the master and the backup, and this setting is enabled, the systems will compare which has been running longer. Data from the longer running system will be used, and data from the other system will be discarded.", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false }, "put": { "tags": [ "redundancy" ], "summary": "Update Redundancy Config", "description": "Updates the configuration of the redundancy system.", "parameters": [], "requestBody": { "description": "A json object containing the new redundancy configuration", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "gatewayNetworkSetup": { "description": "Gateway network settings to establish a connection to the redundant master.", "type": "object", "properties": { "host": { "description": "The address of the master gateway.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "The Gateway Network port of the master gateway.", "type": "number", "x-ignition-non-secret": false }, "enableSsl": { "description": "Whether to use SSL to connect to the master gateway.", "type": "boolean", "x-ignition-non-secret": false }, "pingRate": { "description": "How often, in milliseconds, to send a ping to the master.", "type": "number", "x-ignition-non-secret": false }, "pingTimeout": { "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.", "type": "number", "x-ignition-non-secret": false }, "pingMaxMissed": { "description": "The amount of missed pings that will force the connection to the master to be considered faulted.", "type": "number", "x-ignition-non-secret": false }, "websocketTimeout": { "description": "The maximum time, in milliseconds, allowed for a new web socket to connect to the master.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeout": { "description": "The maximum time, in milliseconds, allowed to establish an HTTP connection to the master.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeout": { "description": "The maximum time, in milliseconds, allowed to read or send HTTP data to the master.", "type": "number", "x-ignition-non-secret": false }, "sendThreads": { "description": "Number of threads to use for sending messages.", "type": "number", "x-ignition-non-secret": false }, "receiveThreads": { "description": "Number of threads to use for receiving messages.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "activeHistoryLevel": { "description": "If Partial, history will be cached instead of stored while the master is down. After the master and the backup reconnect, the cached history data will be compared to the master's stored history data to eliminate data overlaps from being stored.", "type": "string", "enum": [ "Partial", "Full" ], "x-ignition-non-secret": false }, "joinWaitTime": { "description": "The time in milliseconds that the system will wait at startup for the other redundant node to connect. If this time is exceeded without establishing contact, this node will become active regardless of node role.", "type": "number", "x-ignition-non-secret": false }, "role": { "description": "Enable or disable redundancy, and specify this node's role.", "type": "string", "enum": [ "Independent", "Backup", "Master" ], "x-ignition-non-secret": false }, "standbyActivityLevel": { "description": "If set to Warm, the backup node will establish subscriptions to other systems such as OPC-UA. These subscriptions will remain inert until the node becomes active. Using the Warm setting can help reduce failover time.", "type": "string", "enum": [ "Cold", "Warm" ], "x-ignition-non-secret": false }, "syncTimeoutSecs": { "description": "The maximum time (in seconds) allowed for a redundancy sync operation. Sync operations that exceed this value will time out. ", "type": "number", "x-ignition-non-secret": false }, "autoDetectLocal": { "description": "If true, the system will automatically detect which network interface to use. Most commonly disabled on systems with multiple network cards, in order to explicitly specify which interface to use.", "type": "boolean", "x-ignition-non-secret": false }, "localInterface": { "description": "The IP address of the network interface to use for redundancy. Only used if auto-detect is turned off.", "type": "string", "x-ignition-non-secret": false }, "masterRecoveryMode": { "description": "When set to Manual, the backup node will remain active after reconnecting to the master. A failover operation must be manually initiated on the gateway redundancy page for the master to become active again.", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "useActiveUptimeToResolveConflict": { "description": "When a redundancy data conflict is detected between the master and the backup, and this setting is enabled, the systems will compare which has been running longer. Data from the longer running system will be used, and data from the other system will be discarded.", "type": "boolean", "x-ignition-non-secret": false } } } } } }, "responses": { "422": { "description": "Redundancy config update failed due to validation errors." }, "200": { "description": "Redundancy config updated successfully." } }, "deprecated": false } }, "/data/api/v1/redundancy/events": { "get": { "tags": [ "redundancy" ], "summary": "Log Events", "description": "Returns log events from the redundancy system.", "parameters": [ { "name": "timestamp", "in": "query", "description": "Return all logs since this timestamp (in epoch millis).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "number", "example": { "timestamp": 1716497361211 } } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "timestamp": { "type": "number" }, "loggerName": { "type": "string" }, "level": { "type": "string" }, "message": { "type": "string" }, "marker": { "type": "string" }, "sourceLocation": { "type": "string" }, "properties": { "type": "object", "properties": { "redundant-provider": { "type": "string" } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/redundancy/gwaction/failover": { "post": { "tags": [ "redundancy" ], "summary": "Force Failover", "description": "Forces redundant configuration to failover to the backup node.", "parameters": [], "responses": { "200": { "description": "Failover request made successfully.", "content": { "application/json": { "schema": { "properties": { "force_failover": { "type": "string" } } } } } } }, "deprecated": false } }, "/data/api/v1/redundancy/gwaction/resync": { "post": { "tags": [ "redundancy" ], "summary": "Re-Sync Configuration", "description": "Makes a request to force the re-synchronization of redundant nodes.", "parameters": [], "responses": { "200": { "description": "Re-Sync request made successfully", "content": { "application/json": { "schema": { "properties": { "resync_state": { "type": "string" } } } } } } }, "deprecated": false } }, "/data/api/v1/redundancy/providers": { "get": { "tags": [ "redundancy" ], "summary": "Redundancy Provider Metrics", "description": "Information on all the Redundancy Providers this Ignition Gateway knows about.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "friendlyName": { "type": "object", "x-ignition-non-secret": false }, "pendingUpdates": { "type": "object", "x-ignition-non-secret": false }, "queuedUpdatesPerSec": { "type": "object", "x-ignition-non-secret": false }, "dispatchedUpdatesPerSec": { "type": "object", "x-ignition-non-secret": false }, "lastPullTimestamp": { "type": "object", "x-ignition-non-secret": false }, "lastPullDuration": { "type": "object", "x-ignition-non-secret": false }, "lastApplyDuration": { "type": "object", "x-ignition-non-secret": false }, "lastSyncError": { "type": "object", "x-ignition-non-secret": false }, "hashcode": { "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.alarm-notification/alarm-notification-profile": { "put": { "tags": [ "alarm-notification-profile" ], "summary": "Modify Alarm Notification Profiles", "description": "Modify one or more Alarm Notification Profiles resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "AirlinkSms", "EmailNotificationProfileType", "OneWayNotificationProfileType", "RemoteNotificationProfileType" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/AirlinkSms", "title": "AirlinkSms", "type": "object", "properties": { "hostAddress": { "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "sendPort": { "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "receivePort": { "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupHostAddress": { "description": "Host Address to use if on a Backup Gateway", "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Backup Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "backupSendPort": { "description": "Send Port to use if on a Backup Gateway", "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupReceivePort": { "description": "Receive Port to use if on a Backup Gateway", "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "numericOnlyAckCode": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Numeric Only Ack Code" }, "type": "boolean", "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as SMS messages and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostAddress", "sendPort", "receivePort", "backupHostAddress", "backupSendPort", "backupReceivePort" ] }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/EmailNotificationProfileType", "title": "EmailNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "useSmtpProfile": { "description": "If selected, this notification profile will use one of the Gateway defined email profiles. Otherwise, it will use the settings defined here.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Use SMTP Profile" }, "type": "boolean", "x-ignition-non-secret": false }, "emailProfile": { "description": "If Use Email Profile is selected, alarm notifications will be emailed using this profile.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "hostname": { "description": "Hostname of the SMTP server to send email through. Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on. Only used when Use SMTP Profile is false.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "EMAIL SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "sslEnabled": { "description": "Connect using SSL/TLS. Only used when Use SMTP Profile is false.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Only used when Use SMTP Profile is false.", "x-form": { "fieldType": "SECRET", "category": "EMAIL SETTINGS", "label": "Password" } } }, "required": [ "port" ], "x-ignition-non-secret": false }, "twoWay": { "description": "Two-way Settings", "type": "object", "properties": { "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "gatewayAddress": { "description": "Address and port this Gateway is reachable at. Will be used in notification emails. Example: 1.2.3.4:8088", "default": "null", "x-form": { "fieldType": "TEXT", "category": "TWO-WAY SETTINGS", "label": "Gateway" }, "type": "string", "x-ignition-non-secret": false }, "httpsLinkEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Send HTTPS Link" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "twoWayPop3": { "description": "Pop3 Two-way Settings", "type": "object", "properties": { "pop3TwoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Pop3 Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3SslEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3DeleteMessage": { "description": "Delete the message from the inbox after acknowledging the alarm.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Delete on Acknowledge" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3Hostname": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "pop3Port": { "default": 110, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "pop3Username": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "pop3Password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "POP3 TWO-WAY SETTINGS", "label": "Password" } }, "pop3CustomMessage": { "description": "A message included in the notification email.", "default": "null", "x-form": { "fieldType": "TEXTAREA", "category": "POP3 TWO-WAY SETTINGS", "label": "Custom Message" }, "type": "string", "x-ignition-non-secret": false }, "pop3PollingInterval": { "description": "The interval to check the POP3 server, in milliseconds.", "default": 60000, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Polling Interval *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pop3Port", "pop3PollingInterval" ], "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as emails and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Enable use of the STARTTLS command, allowing the connection to be upgraded to an SSL or TLS connection if supported by the server. This is not necessary for connections that are already SSL/TLS. Ignored when Use SMTP Profile is checked.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "STARTTLS Enabled" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "smtpTimeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/OneWayNotificationProfileType", "title": "OneWayNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "emailProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "roster": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "On-Call Roster", "referenceType": "ignition/roster-config" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "criteria": { "description": "Alarm Criteria", "type": "object", "properties": { "minPriority": { "default": "Low", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "maxPriority": { "default": "Critical", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Maximum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "fromAddress": { "description": "An optional address to use for the From field. If empty, the email session username will be used.", "default": "null", "pattern": "EMAIL", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "From Address" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/RemoteNotificationProfileType", "title": "RemoteNotificationProfileType", "type": "object", "properties": { "remoteInfo": { "description": "Remote Gateway", "type": "object", "properties": { "serverName": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Notification Profile", "referenceType": "com.inductiveautomation.alarm-notification/alarm-notification-profile" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "retryDelayMillis": { "description": "Delay, in milliseconds, between retries of a failed attempt to synchronize with the remote profile.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Retry Delay (Milliseconds) *" }, "type": "number", "x-ignition-non-secret": false }, "maxEvaluationQueueSize": { "description": "Maximum size of the transition evaluation queue before the oldest entries are start getting discarded. This queue is only expected to fill while the connection to the remote is not available.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Queued Alarm Transitions *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "retryDelayMillis", "maxEvaluationQueueSize" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "AirlinkSms", "EmailNotificationProfileType", "OneWayNotificationProfileType", "RemoteNotificationProfileType" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/AirlinkSms", "title": "AirlinkSms", "type": "object", "properties": { "hostAddress": { "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "sendPort": { "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "receivePort": { "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupHostAddress": { "description": "Host Address to use if on a Backup Gateway", "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Backup Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "backupSendPort": { "description": "Send Port to use if on a Backup Gateway", "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupReceivePort": { "description": "Receive Port to use if on a Backup Gateway", "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "numericOnlyAckCode": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Numeric Only Ack Code" }, "type": "boolean", "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as SMS messages and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostAddress", "sendPort", "receivePort", "backupHostAddress", "backupSendPort", "backupReceivePort" ] }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/EmailNotificationProfileType", "title": "EmailNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "useSmtpProfile": { "description": "If selected, this notification profile will use one of the Gateway defined email profiles. Otherwise, it will use the settings defined here.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Use SMTP Profile" }, "type": "boolean", "x-ignition-non-secret": false }, "emailProfile": { "description": "If Use Email Profile is selected, alarm notifications will be emailed using this profile.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "hostname": { "description": "Hostname of the SMTP server to send email through. Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on. Only used when Use SMTP Profile is false.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "EMAIL SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "sslEnabled": { "description": "Connect using SSL/TLS. Only used when Use SMTP Profile is false.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Only used when Use SMTP Profile is false.", "x-form": { "fieldType": "SECRET", "category": "EMAIL SETTINGS", "label": "Password" } } }, "required": [ "port" ], "x-ignition-non-secret": false }, "twoWay": { "description": "Two-way Settings", "type": "object", "properties": { "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "gatewayAddress": { "description": "Address and port this Gateway is reachable at. Will be used in notification emails. Example: 1.2.3.4:8088", "default": "null", "x-form": { "fieldType": "TEXT", "category": "TWO-WAY SETTINGS", "label": "Gateway" }, "type": "string", "x-ignition-non-secret": false }, "httpsLinkEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Send HTTPS Link" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "twoWayPop3": { "description": "Pop3 Two-way Settings", "type": "object", "properties": { "pop3TwoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Pop3 Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3SslEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3DeleteMessage": { "description": "Delete the message from the inbox after acknowledging the alarm.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Delete on Acknowledge" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3Hostname": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "pop3Port": { "default": 110, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "pop3Username": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "pop3Password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "POP3 TWO-WAY SETTINGS", "label": "Password" } }, "pop3CustomMessage": { "description": "A message included in the notification email.", "default": "null", "x-form": { "fieldType": "TEXTAREA", "category": "POP3 TWO-WAY SETTINGS", "label": "Custom Message" }, "type": "string", "x-ignition-non-secret": false }, "pop3PollingInterval": { "description": "The interval to check the POP3 server, in milliseconds.", "default": 60000, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Polling Interval *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pop3Port", "pop3PollingInterval" ], "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as emails and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Enable use of the STARTTLS command, allowing the connection to be upgraded to an SSL or TLS connection if supported by the server. This is not necessary for connections that are already SSL/TLS. Ignored when Use SMTP Profile is checked.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "STARTTLS Enabled" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "smtpTimeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/OneWayNotificationProfileType", "title": "OneWayNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "emailProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "roster": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "On-Call Roster", "referenceType": "ignition/roster-config" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "criteria": { "description": "Alarm Criteria", "type": "object", "properties": { "minPriority": { "default": "Low", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "maxPriority": { "default": "Critical", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Maximum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "fromAddress": { "description": "An optional address to use for the From field. If empty, the email session username will be used.", "default": "null", "pattern": "EMAIL", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "From Address" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/RemoteNotificationProfileType", "title": "RemoteNotificationProfileType", "type": "object", "properties": { "remoteInfo": { "description": "Remote Gateway", "type": "object", "properties": { "serverName": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Notification Profile", "referenceType": "com.inductiveautomation.alarm-notification/alarm-notification-profile" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "retryDelayMillis": { "description": "Delay, in milliseconds, between retries of a failed attempt to synchronize with the remote profile.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Retry Delay (Milliseconds) *" }, "type": "number", "x-ignition-non-secret": false }, "maxEvaluationQueueSize": { "description": "Maximum size of the transition evaluation queue before the oldest entries are start getting discarded. This queue is only expected to fill while the connection to the remote is not available.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Queued Alarm Transitions *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "retryDelayMillis", "maxEvaluationQueueSize" ], "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "alarm-notification-profile" ], "summary": "Create Alarm Notification Profiles", "description": "Create a new Alarm Notification Profiles resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "AirlinkSms", "EmailNotificationProfileType", "OneWayNotificationProfileType", "RemoteNotificationProfileType" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/AirlinkSms", "title": "AirlinkSms", "type": "object", "properties": { "hostAddress": { "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "sendPort": { "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "receivePort": { "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupHostAddress": { "description": "Host Address to use if on a Backup Gateway", "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Backup Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "backupSendPort": { "description": "Send Port to use if on a Backup Gateway", "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupReceivePort": { "description": "Receive Port to use if on a Backup Gateway", "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "numericOnlyAckCode": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Numeric Only Ack Code" }, "type": "boolean", "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as SMS messages and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostAddress", "sendPort", "receivePort", "backupHostAddress", "backupSendPort", "backupReceivePort" ] }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/EmailNotificationProfileType", "title": "EmailNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "useSmtpProfile": { "description": "If selected, this notification profile will use one of the Gateway defined email profiles. Otherwise, it will use the settings defined here.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Use SMTP Profile" }, "type": "boolean", "x-ignition-non-secret": false }, "emailProfile": { "description": "If Use Email Profile is selected, alarm notifications will be emailed using this profile.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "hostname": { "description": "Hostname of the SMTP server to send email through. Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on. Only used when Use SMTP Profile is false.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "EMAIL SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "sslEnabled": { "description": "Connect using SSL/TLS. Only used when Use SMTP Profile is false.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Only used when Use SMTP Profile is false.", "x-form": { "fieldType": "SECRET", "category": "EMAIL SETTINGS", "label": "Password" } } }, "required": [ "port" ], "x-ignition-non-secret": false }, "twoWay": { "description": "Two-way Settings", "type": "object", "properties": { "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "gatewayAddress": { "description": "Address and port this Gateway is reachable at. Will be used in notification emails. Example: 1.2.3.4:8088", "default": "null", "x-form": { "fieldType": "TEXT", "category": "TWO-WAY SETTINGS", "label": "Gateway" }, "type": "string", "x-ignition-non-secret": false }, "httpsLinkEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Send HTTPS Link" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "twoWayPop3": { "description": "Pop3 Two-way Settings", "type": "object", "properties": { "pop3TwoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Pop3 Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3SslEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3DeleteMessage": { "description": "Delete the message from the inbox after acknowledging the alarm.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Delete on Acknowledge" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3Hostname": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "pop3Port": { "default": 110, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "pop3Username": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "pop3Password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "POP3 TWO-WAY SETTINGS", "label": "Password" } }, "pop3CustomMessage": { "description": "A message included in the notification email.", "default": "null", "x-form": { "fieldType": "TEXTAREA", "category": "POP3 TWO-WAY SETTINGS", "label": "Custom Message" }, "type": "string", "x-ignition-non-secret": false }, "pop3PollingInterval": { "description": "The interval to check the POP3 server, in milliseconds.", "default": 60000, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Polling Interval *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pop3Port", "pop3PollingInterval" ], "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as emails and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Enable use of the STARTTLS command, allowing the connection to be upgraded to an SSL or TLS connection if supported by the server. This is not necessary for connections that are already SSL/TLS. Ignored when Use SMTP Profile is checked.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "STARTTLS Enabled" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "smtpTimeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/OneWayNotificationProfileType", "title": "OneWayNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "emailProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "roster": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "On-Call Roster", "referenceType": "ignition/roster-config" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "criteria": { "description": "Alarm Criteria", "type": "object", "properties": { "minPriority": { "default": "Low", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "maxPriority": { "default": "Critical", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Maximum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "fromAddress": { "description": "An optional address to use for the From field. If empty, the email session username will be used.", "default": "null", "pattern": "EMAIL", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "From Address" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/RemoteNotificationProfileType", "title": "RemoteNotificationProfileType", "type": "object", "properties": { "remoteInfo": { "description": "Remote Gateway", "type": "object", "properties": { "serverName": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Notification Profile", "referenceType": "com.inductiveautomation.alarm-notification/alarm-notification-profile" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "retryDelayMillis": { "description": "Delay, in milliseconds, between retries of a failed attempt to synchronize with the remote profile.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Retry Delay (Milliseconds) *" }, "type": "number", "x-ignition-non-secret": false }, "maxEvaluationQueueSize": { "description": "Maximum size of the transition evaluation queue before the oldest entries are start getting discarded. This queue is only expected to fill while the connection to the remote is not available.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Queued Alarm Transitions *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "retryDelayMillis", "maxEvaluationQueueSize" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "AirlinkSms", "EmailNotificationProfileType", "OneWayNotificationProfileType", "RemoteNotificationProfileType" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/AirlinkSms", "title": "AirlinkSms", "type": "object", "properties": { "hostAddress": { "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "sendPort": { "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "receivePort": { "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupHostAddress": { "description": "Host Address to use if on a Backup Gateway", "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Backup Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "backupSendPort": { "description": "Send Port to use if on a Backup Gateway", "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupReceivePort": { "description": "Receive Port to use if on a Backup Gateway", "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "numericOnlyAckCode": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Numeric Only Ack Code" }, "type": "boolean", "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as SMS messages and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostAddress", "sendPort", "receivePort", "backupHostAddress", "backupSendPort", "backupReceivePort" ] }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/EmailNotificationProfileType", "title": "EmailNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "useSmtpProfile": { "description": "If selected, this notification profile will use one of the Gateway defined email profiles. Otherwise, it will use the settings defined here.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Use SMTP Profile" }, "type": "boolean", "x-ignition-non-secret": false }, "emailProfile": { "description": "If Use Email Profile is selected, alarm notifications will be emailed using this profile.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "hostname": { "description": "Hostname of the SMTP server to send email through. Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on. Only used when Use SMTP Profile is false.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "EMAIL SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "sslEnabled": { "description": "Connect using SSL/TLS. Only used when Use SMTP Profile is false.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Only used when Use SMTP Profile is false.", "x-form": { "fieldType": "SECRET", "category": "EMAIL SETTINGS", "label": "Password" } } }, "required": [ "port" ], "x-ignition-non-secret": false }, "twoWay": { "description": "Two-way Settings", "type": "object", "properties": { "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "gatewayAddress": { "description": "Address and port this Gateway is reachable at. Will be used in notification emails. Example: 1.2.3.4:8088", "default": "null", "x-form": { "fieldType": "TEXT", "category": "TWO-WAY SETTINGS", "label": "Gateway" }, "type": "string", "x-ignition-non-secret": false }, "httpsLinkEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Send HTTPS Link" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "twoWayPop3": { "description": "Pop3 Two-way Settings", "type": "object", "properties": { "pop3TwoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Pop3 Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3SslEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3DeleteMessage": { "description": "Delete the message from the inbox after acknowledging the alarm.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Delete on Acknowledge" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3Hostname": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "pop3Port": { "default": 110, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "pop3Username": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "pop3Password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "POP3 TWO-WAY SETTINGS", "label": "Password" } }, "pop3CustomMessage": { "description": "A message included in the notification email.", "default": "null", "x-form": { "fieldType": "TEXTAREA", "category": "POP3 TWO-WAY SETTINGS", "label": "Custom Message" }, "type": "string", "x-ignition-non-secret": false }, "pop3PollingInterval": { "description": "The interval to check the POP3 server, in milliseconds.", "default": 60000, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Polling Interval *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pop3Port", "pop3PollingInterval" ], "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as emails and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Enable use of the STARTTLS command, allowing the connection to be upgraded to an SSL or TLS connection if supported by the server. This is not necessary for connections that are already SSL/TLS. Ignored when Use SMTP Profile is checked.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "STARTTLS Enabled" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "smtpTimeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/OneWayNotificationProfileType", "title": "OneWayNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "emailProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "roster": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "On-Call Roster", "referenceType": "ignition/roster-config" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "criteria": { "description": "Alarm Criteria", "type": "object", "properties": { "minPriority": { "default": "Low", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "maxPriority": { "default": "Critical", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Maximum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "fromAddress": { "description": "An optional address to use for the From field. If empty, the email session username will be used.", "default": "null", "pattern": "EMAIL", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "From Address" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/RemoteNotificationProfileType", "title": "RemoteNotificationProfileType", "type": "object", "properties": { "remoteInfo": { "description": "Remote Gateway", "type": "object", "properties": { "serverName": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Notification Profile", "referenceType": "com.inductiveautomation.alarm-notification/alarm-notification-profile" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "retryDelayMillis": { "description": "Delay, in milliseconds, between retries of a failed attempt to synchronize with the remote profile.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Retry Delay (Milliseconds) *" }, "type": "number", "x-ignition-non-secret": false }, "maxEvaluationQueueSize": { "description": "Maximum size of the transition evaluation queue before the oldest entries are start getting discarded. This queue is only expected to fill while the connection to the remote is not available.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Queued Alarm Transitions *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "retryDelayMillis", "maxEvaluationQueueSize" ], "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.alarm-notification/alarm-notification-profile/{name}/{signature}": { "delete": { "tags": [ "alarm-notification-profile" ], "summary": "Delete Alarm Notification Profiles", "description": "Delete a Alarm Notification Profiles resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/agent-group": { "put": { "tags": [ "agent-group" ], "summary": "Modify Agent Groups", "description": "Modify one or more Agent Groups resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object" }, "backupConfig": { "type": "object" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "agent-group" ], "summary": "Create Agent Groups", "description": "Create a new Agent Groups resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object" }, "backupConfig": { "type": "object" } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/agent-group/{name}/{signature}": { "delete": { "tags": [ "agent-group" ], "summary": "Delete Agent Groups", "description": "Delete a Agent Groups resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/agent-management": { "put": { "tags": [ "agent-management" ], "summary": "Modify Agent Management", "description": "Modify one or more Agent Management resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "serverId": { "description": "Agent ServerId in encoded form (such as '_0:0:agent')", "type": "string", "x-ignition-non-secret": false }, "groupName": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "serverId": { "description": "Agent ServerId in encoded form (such as '_0:0:agent')", "type": "string", "x-ignition-non-secret": false }, "groupName": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "agent-management" ], "summary": "Create Agent Management", "description": "Create a new Agent Management resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "serverId": { "description": "Agent ServerId in encoded form (such as '_0:0:agent')", "type": "string", "x-ignition-non-secret": false }, "groupName": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "serverId": { "description": "Agent ServerId in encoded form (such as '_0:0:agent')", "type": "string", "x-ignition-non-secret": false }, "groupName": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/agent-management/{name}/{signature}": { "delete": { "tags": [ "agent-management" ], "summary": "Delete Agent Management", "description": "Delete a Agent Management resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/eam-tasks": { "put": { "tags": [ "eam-tasks" ], "summary": "Modify EAM Agent Task", "description": "Modify one or more EAM Agent Task resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "eam_activateLicense", "eam_backup", "eam_installModules", "eam_remoteUpgrade", "eam_restart", "eam_restoreBackup", "eam_sendProject", "eam_sendResource", "eam_sendTags", "eam_unactivateLicense", "eam_updateLicense" ] }, "isSuspended": { "type": "boolean", "x-ignition-non-secret": false }, "scheduleMode": { "type": "string", "enum": [ "Immediate", "AtTime", "AtDelay", "Scheduled", "OnDemand" ], "x-ignition-non-secret": false }, "scheduleDetails": { "type": "string", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.eam/eam-tasks/eam_activateLicense", "title": "eam_activateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_backup", "title": "eam_backup", "type": "object", "properties": { "concurrentBackups": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "forceBackups": { "description": "If true, a gateway backup will be always generated for the agent, even if the agent gateway configuration has not changed since the last backup was taken.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_installModules", "title": "eam_installModules", "type": "object", "properties": { "moduleInfo": { "description": "User-readable meta information about the modules that will be installed when the task runs.", "type": "object", "properties": { "name": { "description": "The module's name", "type": "string", "x-ignition-non-secret": false }, "version": { "description": "The module's version", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "restartAgent": { "description": "If true, the agent gateway will be restarted after the modules are installed.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_remoteUpgrade", "title": "eam_remoteUpgrade", "type": "object", "properties": { "upgradeZipTransferType": { "description": "Set to 'Send over Gateway Network' to stream the upgrade zip to the agent. Set to 'Alternate URL' to force the agent to download the upgrade zip on its own from a provided URL.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restart", "title": "eam_restart", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restoreBackup", "title": "eam_restoreBackup", "type": "object", "properties": { "uploadedGwbkpath": { "description": "A path to the temporary .gwbk file on disk. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "archivedGwbkpath": { "description": "A path to a .gwbk file in the EAM archive. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "restoredisabled": { "description": "If true, all agent configuration will be disabled after the restore operation.", "type": "boolean", "x-ignition-non-secret": false }, "installModules": { "description": "If true, any missing modules will be installed during the restore operation. Missing modules are modules that were installed on the agent when the backup was taken, but are not installed now.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendProject", "title": "eam_sendProject", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited projects will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway from where the project will be retrieved.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project that will be retrieved.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendResource", "title": "eam_sendResource", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited resources will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "targetProject": { "description": "The selected resources will be sent to this project on the specified agents.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendTags", "title": "eam_sendTags", "type": "object", "properties": { "targetTagProvider": { "description": "The tag provider that will receive the tags.", "type": "string", "x-ignition-non-secret": false }, "tagPaths": { "description": "A comma-separated list of tag paths.", "type": "string", "x-ignition-non-secret": false }, "collisionPolicy": { "description": "The tag collision policy. Valid values include 'Abort', 'Overwrite', 'Rename', 'Ignore', and 'MergeOverwrite'.", "type": "string", "x-ignition-non-secret": false }, "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_unactivateLicense", "title": "eam_unactivateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_updateLicense", "title": "eam_updateLicense", "type": "object" } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "eam_activateLicense", "eam_backup", "eam_installModules", "eam_remoteUpgrade", "eam_restart", "eam_restoreBackup", "eam_sendProject", "eam_sendResource", "eam_sendTags", "eam_unactivateLicense", "eam_updateLicense" ] }, "isSuspended": { "type": "boolean", "x-ignition-non-secret": false }, "scheduleMode": { "type": "string", "enum": [ "Immediate", "AtTime", "AtDelay", "Scheduled", "OnDemand" ], "x-ignition-non-secret": false }, "scheduleDetails": { "type": "string", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.eam/eam-tasks/eam_activateLicense", "title": "eam_activateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_backup", "title": "eam_backup", "type": "object", "properties": { "concurrentBackups": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "forceBackups": { "description": "If true, a gateway backup will be always generated for the agent, even if the agent gateway configuration has not changed since the last backup was taken.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_installModules", "title": "eam_installModules", "type": "object", "properties": { "moduleInfo": { "description": "User-readable meta information about the modules that will be installed when the task runs.", "type": "object", "properties": { "name": { "description": "The module's name", "type": "string", "x-ignition-non-secret": false }, "version": { "description": "The module's version", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "restartAgent": { "description": "If true, the agent gateway will be restarted after the modules are installed.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_remoteUpgrade", "title": "eam_remoteUpgrade", "type": "object", "properties": { "upgradeZipTransferType": { "description": "Set to 'Send over Gateway Network' to stream the upgrade zip to the agent. Set to 'Alternate URL' to force the agent to download the upgrade zip on its own from a provided URL.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restart", "title": "eam_restart", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restoreBackup", "title": "eam_restoreBackup", "type": "object", "properties": { "uploadedGwbkpath": { "description": "A path to the temporary .gwbk file on disk. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "archivedGwbkpath": { "description": "A path to a .gwbk file in the EAM archive. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "restoredisabled": { "description": "If true, all agent configuration will be disabled after the restore operation.", "type": "boolean", "x-ignition-non-secret": false }, "installModules": { "description": "If true, any missing modules will be installed during the restore operation. Missing modules are modules that were installed on the agent when the backup was taken, but are not installed now.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendProject", "title": "eam_sendProject", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited projects will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway from where the project will be retrieved.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project that will be retrieved.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendResource", "title": "eam_sendResource", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited resources will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "targetProject": { "description": "The selected resources will be sent to this project on the specified agents.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendTags", "title": "eam_sendTags", "type": "object", "properties": { "targetTagProvider": { "description": "The tag provider that will receive the tags.", "type": "string", "x-ignition-non-secret": false }, "tagPaths": { "description": "A comma-separated list of tag paths.", "type": "string", "x-ignition-non-secret": false }, "collisionPolicy": { "description": "The tag collision policy. Valid values include 'Abort', 'Overwrite', 'Rename', 'Ignore', and 'MergeOverwrite'.", "type": "string", "x-ignition-non-secret": false }, "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_unactivateLicense", "title": "eam_unactivateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_updateLicense", "title": "eam_updateLicense", "type": "object" } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "eam-tasks" ], "summary": "Create EAM Agent Task", "description": "Create a new EAM Agent Task resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "eam_activateLicense", "eam_backup", "eam_installModules", "eam_remoteUpgrade", "eam_restart", "eam_restoreBackup", "eam_sendProject", "eam_sendResource", "eam_sendTags", "eam_unactivateLicense", "eam_updateLicense" ] }, "isSuspended": { "type": "boolean", "x-ignition-non-secret": false }, "scheduleMode": { "type": "string", "enum": [ "Immediate", "AtTime", "AtDelay", "Scheduled", "OnDemand" ], "x-ignition-non-secret": false }, "scheduleDetails": { "type": "string", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.eam/eam-tasks/eam_activateLicense", "title": "eam_activateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_backup", "title": "eam_backup", "type": "object", "properties": { "concurrentBackups": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "forceBackups": { "description": "If true, a gateway backup will be always generated for the agent, even if the agent gateway configuration has not changed since the last backup was taken.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_installModules", "title": "eam_installModules", "type": "object", "properties": { "moduleInfo": { "description": "User-readable meta information about the modules that will be installed when the task runs.", "type": "object", "properties": { "name": { "description": "The module's name", "type": "string", "x-ignition-non-secret": false }, "version": { "description": "The module's version", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "restartAgent": { "description": "If true, the agent gateway will be restarted after the modules are installed.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_remoteUpgrade", "title": "eam_remoteUpgrade", "type": "object", "properties": { "upgradeZipTransferType": { "description": "Set to 'Send over Gateway Network' to stream the upgrade zip to the agent. Set to 'Alternate URL' to force the agent to download the upgrade zip on its own from a provided URL.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restart", "title": "eam_restart", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restoreBackup", "title": "eam_restoreBackup", "type": "object", "properties": { "uploadedGwbkpath": { "description": "A path to the temporary .gwbk file on disk. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "archivedGwbkpath": { "description": "A path to a .gwbk file in the EAM archive. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "restoredisabled": { "description": "If true, all agent configuration will be disabled after the restore operation.", "type": "boolean", "x-ignition-non-secret": false }, "installModules": { "description": "If true, any missing modules will be installed during the restore operation. Missing modules are modules that were installed on the agent when the backup was taken, but are not installed now.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendProject", "title": "eam_sendProject", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited projects will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway from where the project will be retrieved.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project that will be retrieved.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendResource", "title": "eam_sendResource", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited resources will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "targetProject": { "description": "The selected resources will be sent to this project on the specified agents.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendTags", "title": "eam_sendTags", "type": "object", "properties": { "targetTagProvider": { "description": "The tag provider that will receive the tags.", "type": "string", "x-ignition-non-secret": false }, "tagPaths": { "description": "A comma-separated list of tag paths.", "type": "string", "x-ignition-non-secret": false }, "collisionPolicy": { "description": "The tag collision policy. Valid values include 'Abort', 'Overwrite', 'Rename', 'Ignore', and 'MergeOverwrite'.", "type": "string", "x-ignition-non-secret": false }, "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_unactivateLicense", "title": "eam_unactivateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_updateLicense", "title": "eam_updateLicense", "type": "object" } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "eam_activateLicense", "eam_backup", "eam_installModules", "eam_remoteUpgrade", "eam_restart", "eam_restoreBackup", "eam_sendProject", "eam_sendResource", "eam_sendTags", "eam_unactivateLicense", "eam_updateLicense" ] }, "isSuspended": { "type": "boolean", "x-ignition-non-secret": false }, "scheduleMode": { "type": "string", "enum": [ "Immediate", "AtTime", "AtDelay", "Scheduled", "OnDemand" ], "x-ignition-non-secret": false }, "scheduleDetails": { "type": "string", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.eam/eam-tasks/eam_activateLicense", "title": "eam_activateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_backup", "title": "eam_backup", "type": "object", "properties": { "concurrentBackups": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "forceBackups": { "description": "If true, a gateway backup will be always generated for the agent, even if the agent gateway configuration has not changed since the last backup was taken.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_installModules", "title": "eam_installModules", "type": "object", "properties": { "moduleInfo": { "description": "User-readable meta information about the modules that will be installed when the task runs.", "type": "object", "properties": { "name": { "description": "The module's name", "type": "string", "x-ignition-non-secret": false }, "version": { "description": "The module's version", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "restartAgent": { "description": "If true, the agent gateway will be restarted after the modules are installed.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_remoteUpgrade", "title": "eam_remoteUpgrade", "type": "object", "properties": { "upgradeZipTransferType": { "description": "Set to 'Send over Gateway Network' to stream the upgrade zip to the agent. Set to 'Alternate URL' to force the agent to download the upgrade zip on its own from a provided URL.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restart", "title": "eam_restart", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restoreBackup", "title": "eam_restoreBackup", "type": "object", "properties": { "uploadedGwbkpath": { "description": "A path to the temporary .gwbk file on disk. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "archivedGwbkpath": { "description": "A path to a .gwbk file in the EAM archive. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "restoredisabled": { "description": "If true, all agent configuration will be disabled after the restore operation.", "type": "boolean", "x-ignition-non-secret": false }, "installModules": { "description": "If true, any missing modules will be installed during the restore operation. Missing modules are modules that were installed on the agent when the backup was taken, but are not installed now.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendProject", "title": "eam_sendProject", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited projects will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway from where the project will be retrieved.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project that will be retrieved.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendResource", "title": "eam_sendResource", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited resources will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "targetProject": { "description": "The selected resources will be sent to this project on the specified agents.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendTags", "title": "eam_sendTags", "type": "object", "properties": { "targetTagProvider": { "description": "The tag provider that will receive the tags.", "type": "string", "x-ignition-non-secret": false }, "tagPaths": { "description": "A comma-separated list of tag paths.", "type": "string", "x-ignition-non-secret": false }, "collisionPolicy": { "description": "The tag collision policy. Valid values include 'Abort', 'Overwrite', 'Rename', 'Ignore', and 'MergeOverwrite'.", "type": "string", "x-ignition-non-secret": false }, "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_unactivateLicense", "title": "eam_unactivateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_updateLicense", "title": "eam_updateLicense", "type": "object" } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/eam-tasks/{name}/{signature}": { "delete": { "tags": [ "eam-tasks" ], "summary": "Delete EAM Agent Task", "description": "Delete a EAM Agent Task resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/event-thresholds": { "put": { "tags": [ "event-thresholds" ], "summary": "Modify Event Thresholds", "description": "Modify one or more Event Thresholds resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "alarmOnActivity": { "description": "If true, alarms will be generated for agent events such as disconnection.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnMetrics": { "description": "If true, alarms will be generated for out-of-range metrics.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnTasks": { "description": "If true, alarms will be generated when an EAM scheduled task fails.", "type": "boolean", "x-ignition-non-secret": false }, "warningPriority": { "description": "The priority to set on alarms when a warning condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "errorPriority": { "description": "The priority to set on alarms when an error condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "activePipeline": { "description": "The alarm notification pipeline to use when reporting EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "ackPipeline": { "description": "The alarm notification pipeline to use when acknowledging EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "connectionWarning": { "description": "Creates a warning event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "connectionError": { "description": "Creates an error event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "cpuWarning": { "description": "Creates a warning event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "cpuError": { "description": "Creates an error event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "memWarning": { "description": "Creates a warning event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "memError": { "description": "Creates an error event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "errPerMinWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerMinError": { "description": "Creates an error event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourError": { "description": "Creates an error event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsWarning": { "description": "Creates a warning event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsError": { "description": "Creates an error event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsWarning": { "description": "Creates a warning event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsError": { "description": "Creates an error event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilWarning": { "description": "Creates a warning event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilError": { "description": "Creates an error event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "alarmOnActivity": { "description": "If true, alarms will be generated for agent events such as disconnection.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnMetrics": { "description": "If true, alarms will be generated for out-of-range metrics.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnTasks": { "description": "If true, alarms will be generated when an EAM scheduled task fails.", "type": "boolean", "x-ignition-non-secret": false }, "warningPriority": { "description": "The priority to set on alarms when a warning condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "errorPriority": { "description": "The priority to set on alarms when an error condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "activePipeline": { "description": "The alarm notification pipeline to use when reporting EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "ackPipeline": { "description": "The alarm notification pipeline to use when acknowledging EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "connectionWarning": { "description": "Creates a warning event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "connectionError": { "description": "Creates an error event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "cpuWarning": { "description": "Creates a warning event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "cpuError": { "description": "Creates an error event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "memWarning": { "description": "Creates a warning event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "memError": { "description": "Creates an error event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "errPerMinWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerMinError": { "description": "Creates an error event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourError": { "description": "Creates an error event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsWarning": { "description": "Creates a warning event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsError": { "description": "Creates an error event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsWarning": { "description": "Creates a warning event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsError": { "description": "Creates an error event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilWarning": { "description": "Creates a warning event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilError": { "description": "Creates an error event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "event-thresholds" ], "summary": "Create Event Thresholds", "description": "Create the Event Thresholds resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "alarmOnActivity": { "description": "If true, alarms will be generated for agent events such as disconnection.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnMetrics": { "description": "If true, alarms will be generated for out-of-range metrics.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnTasks": { "description": "If true, alarms will be generated when an EAM scheduled task fails.", "type": "boolean", "x-ignition-non-secret": false }, "warningPriority": { "description": "The priority to set on alarms when a warning condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "errorPriority": { "description": "The priority to set on alarms when an error condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "activePipeline": { "description": "The alarm notification pipeline to use when reporting EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "ackPipeline": { "description": "The alarm notification pipeline to use when acknowledging EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "connectionWarning": { "description": "Creates a warning event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "connectionError": { "description": "Creates an error event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "cpuWarning": { "description": "Creates a warning event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "cpuError": { "description": "Creates an error event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "memWarning": { "description": "Creates a warning event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "memError": { "description": "Creates an error event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "errPerMinWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerMinError": { "description": "Creates an error event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourError": { "description": "Creates an error event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsWarning": { "description": "Creates a warning event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsError": { "description": "Creates an error event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsWarning": { "description": "Creates a warning event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsError": { "description": "Creates an error event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilWarning": { "description": "Creates a warning event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilError": { "description": "Creates an error event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "alarmOnActivity": { "description": "If true, alarms will be generated for agent events such as disconnection.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnMetrics": { "description": "If true, alarms will be generated for out-of-range metrics.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnTasks": { "description": "If true, alarms will be generated when an EAM scheduled task fails.", "type": "boolean", "x-ignition-non-secret": false }, "warningPriority": { "description": "The priority to set on alarms when a warning condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "errorPriority": { "description": "The priority to set on alarms when an error condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "activePipeline": { "description": "The alarm notification pipeline to use when reporting EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "ackPipeline": { "description": "The alarm notification pipeline to use when acknowledging EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "connectionWarning": { "description": "Creates a warning event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "connectionError": { "description": "Creates an error event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "cpuWarning": { "description": "Creates a warning event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "cpuError": { "description": "Creates an error event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "memWarning": { "description": "Creates a warning event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "memError": { "description": "Creates an error event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "errPerMinWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerMinError": { "description": "Creates an error event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourError": { "description": "Creates an error event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsWarning": { "description": "Creates a warning event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsError": { "description": "Creates an error event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsWarning": { "description": "Creates a warning event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsError": { "description": "Creates an error event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilWarning": { "description": "Creates a warning event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilError": { "description": "Creates an error event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/event-thresholds/{signature}": { "delete": { "tags": [ "event-thresholds" ], "summary": "Delete Event Thresholds", "description": "Delete the Event Thresholds resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/hw-license-management": { "put": { "tags": [ "license-management" ], "summary": "Modify Hardware License", "description": "Modify one or more Hardware License resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "licenseKey": { "description": "The 6-digit hardware license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "licenseKey": { "description": "The 6-digit hardware license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "license-management" ], "summary": "Create Hardware License", "description": "Create a new Hardware License resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "licenseKey": { "description": "The 6-digit hardware license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "licenseKey": { "description": "The 6-digit hardware license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/hw-license-management/{name}/{signature}": { "delete": { "tags": [ "license-management" ], "summary": "Delete Hardware License", "description": "Delete a Hardware License resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/leased-license-management": { "put": { "tags": [ "license-management" ], "summary": "Modify Leased License", "description": "Modify one or more Leased License resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "licenseKey": { "description": "The 8-digit leased license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "licenseKey": { "description": "The 8-digit leased license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "license-management" ], "summary": "Create Leased License", "description": "Create a new Leased License resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "licenseKey": { "description": "The 8-digit leased license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "licenseKey": { "description": "The 8-digit leased license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/leased-license-management/{name}/{signature}": { "delete": { "tags": [ "license-management" ], "summary": "Delete Leased License", "description": "Delete a Leased License resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/module-certificates": { "put": { "tags": [ "module-certificate" ], "summary": "Modify Module Certificate", "description": "Modify one or more Module Certificate resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "thumbprint": { "description": "Bytes that contain the thumbprint of the module's certificate.", "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "subjectName": { "description": "The subject name of the module's certificate.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "thumbprint": { "description": "Bytes that contain the thumbprint of the module's certificate.", "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "subjectName": { "description": "The subject name of the module's certificate.", "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "module-certificate" ], "summary": "Create Module Certificate", "description": "Create a new Module Certificate resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "thumbprint": { "description": "Bytes that contain the thumbprint of the module's certificate.", "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "subjectName": { "description": "The subject name of the module's certificate.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "thumbprint": { "description": "Bytes that contain the thumbprint of the module's certificate.", "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "subjectName": { "description": "The subject name of the module's certificate.", "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/module-certificates/{name}/{signature}": { "delete": { "tags": [ "module-certificate" ], "summary": "Delete Module Certificate", "description": "Delete a Module Certificate resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/module-eulas": { "put": { "tags": [ "module-eula" ], "summary": "Modify Module EULA", "description": "Modify one or more Module EULA resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "moduleId": { "description": "The full module id", "type": "string", "x-ignition-non-secret": false }, "crc": { "description": "Calculated CRC of the module's EULA file", "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "moduleId": { "description": "The full module id", "type": "string", "x-ignition-non-secret": false }, "crc": { "description": "Calculated CRC of the module's EULA file", "type": "number", "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "module-eula" ], "summary": "Create Module EULA", "description": "Create a new Module EULA resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "moduleId": { "description": "The full module id", "type": "string", "x-ignition-non-secret": false }, "crc": { "description": "Calculated CRC of the module's EULA file", "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "moduleId": { "description": "The full module id", "type": "string", "x-ignition-non-secret": false }, "crc": { "description": "Calculated CRC of the module's EULA file", "type": "number", "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/module-eulas/{name}/{signature}": { "delete": { "tags": [ "module-eula" ], "summary": "Delete Module EULA", "description": "Delete a Module EULA resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/module-settings": { "put": { "tags": [ "module-settings" ], "summary": "Modify Module Settings", "description": "Modify one or more Module Settings resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "installMode": { "description": "Set installMode to configure EAM as a controller or an agent", "type": "string", "enum": [ "Controller", "Agent", "NotInstalled" ], "x-ignition-non-secret": false }, "controllerSettings": { "type": "object", "properties": { "eventTableName": { "description": "The database table name that will be used to store EAM events", "type": "string", "x-ignition-non-secret": false }, "archiveLocationMode": { "description": "If 'Automatic', the system will manage the location of the Agent archive. If 'Manual', the archivePath value will be used.", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "archivePath": { "description": "The file path to save Gateway backups, archived modules, and other files.", "type": "string", "x-ignition-non-secret": false }, "lowDiskThresholdMB": { "description": "Value is in megabytes. Errors will be reported in this Gateway when the disk used for archiving drops below this value.", "type": "number", "x-ignition-non-secret": false }, "datasource": { "description": "The database connection to use for recording agent history.", "type": "string", "x-ignition-non-secret": false }, "maxRetainedBackupCount": { "description": "Maximum number of backups that will be retained for each agent.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionAge": { "description": "Maximum age of backups that will be retained for each agent. Age time unit is determined by the backupRetentionTimeUnit setting.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionTimeUnit": { "type": "string", "enum": [ "Days", "Weeks", "Months", "Years" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "agentSettings": { "type": "object", "properties": { "controllerServerId": { "description": "Server name of the EAM controller gateway", "type": "string", "x-ignition-non-secret": false }, "sendStatsInterval": { "description": "The interval in seconds that the agent will send its statistics to the controller Gateway.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http connect timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http read timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "forwardLeasedLicense": { "description": "If true, this setting will forward leased license activation and renewal requests to the controller. The controller will execute the leased requests on behalf of the agent.", "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "installMode": { "description": "Set installMode to configure EAM as a controller or an agent", "type": "string", "enum": [ "Controller", "Agent", "NotInstalled" ], "x-ignition-non-secret": false }, "controllerSettings": { "type": "object", "properties": { "eventTableName": { "description": "The database table name that will be used to store EAM events", "type": "string", "x-ignition-non-secret": false }, "archiveLocationMode": { "description": "If 'Automatic', the system will manage the location of the Agent archive. If 'Manual', the archivePath value will be used.", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "archivePath": { "description": "The file path to save Gateway backups, archived modules, and other files.", "type": "string", "x-ignition-non-secret": false }, "lowDiskThresholdMB": { "description": "Value is in megabytes. Errors will be reported in this Gateway when the disk used for archiving drops below this value.", "type": "number", "x-ignition-non-secret": false }, "datasource": { "description": "The database connection to use for recording agent history.", "type": "string", "x-ignition-non-secret": false }, "maxRetainedBackupCount": { "description": "Maximum number of backups that will be retained for each agent.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionAge": { "description": "Maximum age of backups that will be retained for each agent. Age time unit is determined by the backupRetentionTimeUnit setting.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionTimeUnit": { "type": "string", "enum": [ "Days", "Weeks", "Months", "Years" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "agentSettings": { "type": "object", "properties": { "controllerServerId": { "description": "Server name of the EAM controller gateway", "type": "string", "x-ignition-non-secret": false }, "sendStatsInterval": { "description": "The interval in seconds that the agent will send its statistics to the controller Gateway.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http connect timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http read timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "forwardLeasedLicense": { "description": "If true, this setting will forward leased license activation and renewal requests to the controller. The controller will execute the leased requests on behalf of the agent.", "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "module-settings" ], "summary": "Create Module Settings", "description": "Create the Module Settings resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "installMode": { "description": "Set installMode to configure EAM as a controller or an agent", "type": "string", "enum": [ "Controller", "Agent", "NotInstalled" ], "x-ignition-non-secret": false }, "controllerSettings": { "type": "object", "properties": { "eventTableName": { "description": "The database table name that will be used to store EAM events", "type": "string", "x-ignition-non-secret": false }, "archiveLocationMode": { "description": "If 'Automatic', the system will manage the location of the Agent archive. If 'Manual', the archivePath value will be used.", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "archivePath": { "description": "The file path to save Gateway backups, archived modules, and other files.", "type": "string", "x-ignition-non-secret": false }, "lowDiskThresholdMB": { "description": "Value is in megabytes. Errors will be reported in this Gateway when the disk used for archiving drops below this value.", "type": "number", "x-ignition-non-secret": false }, "datasource": { "description": "The database connection to use for recording agent history.", "type": "string", "x-ignition-non-secret": false }, "maxRetainedBackupCount": { "description": "Maximum number of backups that will be retained for each agent.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionAge": { "description": "Maximum age of backups that will be retained for each agent. Age time unit is determined by the backupRetentionTimeUnit setting.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionTimeUnit": { "type": "string", "enum": [ "Days", "Weeks", "Months", "Years" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "agentSettings": { "type": "object", "properties": { "controllerServerId": { "description": "Server name of the EAM controller gateway", "type": "string", "x-ignition-non-secret": false }, "sendStatsInterval": { "description": "The interval in seconds that the agent will send its statistics to the controller Gateway.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http connect timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http read timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "forwardLeasedLicense": { "description": "If true, this setting will forward leased license activation and renewal requests to the controller. The controller will execute the leased requests on behalf of the agent.", "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "installMode": { "description": "Set installMode to configure EAM as a controller or an agent", "type": "string", "enum": [ "Controller", "Agent", "NotInstalled" ], "x-ignition-non-secret": false }, "controllerSettings": { "type": "object", "properties": { "eventTableName": { "description": "The database table name that will be used to store EAM events", "type": "string", "x-ignition-non-secret": false }, "archiveLocationMode": { "description": "If 'Automatic', the system will manage the location of the Agent archive. If 'Manual', the archivePath value will be used.", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "archivePath": { "description": "The file path to save Gateway backups, archived modules, and other files.", "type": "string", "x-ignition-non-secret": false }, "lowDiskThresholdMB": { "description": "Value is in megabytes. Errors will be reported in this Gateway when the disk used for archiving drops below this value.", "type": "number", "x-ignition-non-secret": false }, "datasource": { "description": "The database connection to use for recording agent history.", "type": "string", "x-ignition-non-secret": false }, "maxRetainedBackupCount": { "description": "Maximum number of backups that will be retained for each agent.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionAge": { "description": "Maximum age of backups that will be retained for each agent. Age time unit is determined by the backupRetentionTimeUnit setting.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionTimeUnit": { "type": "string", "enum": [ "Days", "Weeks", "Months", "Years" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "agentSettings": { "type": "object", "properties": { "controllerServerId": { "description": "Server name of the EAM controller gateway", "type": "string", "x-ignition-non-secret": false }, "sendStatsInterval": { "description": "The interval in seconds that the agent will send its statistics to the controller Gateway.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http connect timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http read timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "forwardLeasedLicense": { "description": "If true, this setting will forward leased license activation and renewal requests to the controller. The controller will execute the leased requests on behalf of the agent.", "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/module-settings/{signature}": { "delete": { "tags": [ "module-settings" ], "summary": "Delete Module Settings", "description": "Delete the Module Settings resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/remote-upgrade": { "put": { "tags": [ "remote-upgrade" ], "summary": "Modify Remote Upgrade", "description": "Modify one or more Remote Upgrade resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "serverId": { "description": "ServerId in encoded form (such as '_0:0:agent') of the EAM agent.", "type": "string", "x-ignition-non-secret": false }, "role": { "description": "The redundant role of the EAM agent, such as 'Master', or 'Backup'. Will be blank for Independent agents.", "type": "string", "x-ignition-non-secret": false }, "statusTimestamp": { "description": "Value holds the timestamp of the most recent upgrade status message.", "type": "number", "x-ignition-non-secret": false }, "agentGroup": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false }, "upgradeStatus": { "description": "The current status of the remote upgrade on the EAM agent.", "type": "string", "enum": [ "Status is unknown", "Preparing upgrade zip file", "\u00bfeam.tasks.remoteUpgrade.status.PrepFail?", "Waiting to send upgrade zip", "Waiting to trigger agent downloads", "Exception thrown within task", "Error on agent", "Agent was not found", "Agent is not connected", "Sending zip to agent", "Error sending zip", "Agent failed to download upgrade zip", "Waiting for backup node upgrade", "Ready to upgrade", "Tranfer node responsibility", "Sending upgrade request", "Upgrade in progress", "Agent needs commissioning", "Upgrade success", "Upgrade failed", "Trial expired" ], "x-ignition-non-secret": false }, "statusMsg": { "description": "If available, this will report details on the current status of the remote upgrade.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "serverId": { "description": "ServerId in encoded form (such as '_0:0:agent') of the EAM agent.", "type": "string", "x-ignition-non-secret": false }, "role": { "description": "The redundant role of the EAM agent, such as 'Master', or 'Backup'. Will be blank for Independent agents.", "type": "string", "x-ignition-non-secret": false }, "statusTimestamp": { "description": "Value holds the timestamp of the most recent upgrade status message.", "type": "number", "x-ignition-non-secret": false }, "agentGroup": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false }, "upgradeStatus": { "description": "The current status of the remote upgrade on the EAM agent.", "type": "string", "enum": [ "Status is unknown", "Preparing upgrade zip file", "\u00bfeam.tasks.remoteUpgrade.status.PrepFail?", "Waiting to send upgrade zip", "Waiting to trigger agent downloads", "Exception thrown within task", "Error on agent", "Agent was not found", "Agent is not connected", "Sending zip to agent", "Error sending zip", "Agent failed to download upgrade zip", "Waiting for backup node upgrade", "Ready to upgrade", "Tranfer node responsibility", "Sending upgrade request", "Upgrade in progress", "Agent needs commissioning", "Upgrade success", "Upgrade failed", "Trial expired" ], "x-ignition-non-secret": false }, "statusMsg": { "description": "If available, this will report details on the current status of the remote upgrade.", "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "remote-upgrade" ], "summary": "Create Remote Upgrade", "description": "Create a new Remote Upgrade resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "serverId": { "description": "ServerId in encoded form (such as '_0:0:agent') of the EAM agent.", "type": "string", "x-ignition-non-secret": false }, "role": { "description": "The redundant role of the EAM agent, such as 'Master', or 'Backup'. Will be blank for Independent agents.", "type": "string", "x-ignition-non-secret": false }, "statusTimestamp": { "description": "Value holds the timestamp of the most recent upgrade status message.", "type": "number", "x-ignition-non-secret": false }, "agentGroup": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false }, "upgradeStatus": { "description": "The current status of the remote upgrade on the EAM agent.", "type": "string", "enum": [ "Status is unknown", "Preparing upgrade zip file", "\u00bfeam.tasks.remoteUpgrade.status.PrepFail?", "Waiting to send upgrade zip", "Waiting to trigger agent downloads", "Exception thrown within task", "Error on agent", "Agent was not found", "Agent is not connected", "Sending zip to agent", "Error sending zip", "Agent failed to download upgrade zip", "Waiting for backup node upgrade", "Ready to upgrade", "Tranfer node responsibility", "Sending upgrade request", "Upgrade in progress", "Agent needs commissioning", "Upgrade success", "Upgrade failed", "Trial expired" ], "x-ignition-non-secret": false }, "statusMsg": { "description": "If available, this will report details on the current status of the remote upgrade.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "serverId": { "description": "ServerId in encoded form (such as '_0:0:agent') of the EAM agent.", "type": "string", "x-ignition-non-secret": false }, "role": { "description": "The redundant role of the EAM agent, such as 'Master', or 'Backup'. Will be blank for Independent agents.", "type": "string", "x-ignition-non-secret": false }, "statusTimestamp": { "description": "Value holds the timestamp of the most recent upgrade status message.", "type": "number", "x-ignition-non-secret": false }, "agentGroup": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false }, "upgradeStatus": { "description": "The current status of the remote upgrade on the EAM agent.", "type": "string", "enum": [ "Status is unknown", "Preparing upgrade zip file", "\u00bfeam.tasks.remoteUpgrade.status.PrepFail?", "Waiting to send upgrade zip", "Waiting to trigger agent downloads", "Exception thrown within task", "Error on agent", "Agent was not found", "Agent is not connected", "Sending zip to agent", "Error sending zip", "Agent failed to download upgrade zip", "Waiting for backup node upgrade", "Ready to upgrade", "Tranfer node responsibility", "Sending upgrade request", "Upgrade in progress", "Agent needs commissioning", "Upgrade success", "Upgrade failed", "Trial expired" ], "x-ignition-non-secret": false }, "statusMsg": { "description": "If available, this will report details on the current status of the remote upgrade.", "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.eam/remote-upgrade/{name}/{signature}": { "delete": { "tags": [ "remote-upgrade" ], "summary": "Delete Remote Upgrade", "description": "Delete a Remote Upgrade resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.historian/historian-provider": { "put": { "tags": [ "historian-config" ], "summary": "Modify Historian", "description": "Modify one or more Historian resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CoreHistorian", "CsvHistorian", "HistorySplitter", "InternalHistorian", "RemoteHistorian", "SimulatorHistorian", "SqlHistorian", "WideDbHistorian" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.historian/historian-provider/CoreHistorian", "title": "CoreHistorian", "type": "object", "properties": { "partitionInterval": { "description": "The partition interval used when creating tables.", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "dataDeduplication": { "description": "When deduplication is enabled, incoming data with matching keys will update existing entries rather than create new ones, which helps maintain data integrity by allowing corrected data to replace erroneous entries.", "type": "boolean", "x-ignition-non-secret": false }, "maintenanceSettings": { "description": "Specifies the maintenance settings for handling data that exceeds the retention limit.", "type": "object", "properties": { "strategy": { "description": "Determines whether older data is archived to a target location or permanently deleted.", "type": "string", "enum": [ "NONE", "ARCHIVE", "PRUNE" ], "x-ignition-non-secret": false }, "directory": { "description": "Specifies the target directory path where data will be archived when maintenance mode is set to ARCHIVE. Must be a valid, writable directory location.", "type": "string", "x-ignition-non-secret": false }, "maintenanceAgeUnits": { "description": "\u00bfCoreHistorianSettings.MaintenanceAgeUnit.Description?", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maintenanceAge": { "description": "Specifies the age threshold for data maintenance.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/CsvHistorian", "title": "CsvHistorian", "type": "object", "properties": { "filePath": { "description": "Specifies the CSV file path. Required format: timestamp column followed by value columns, with tag names defined in the header row.", "type": "string", "x-ignition-non-secret": false }, "relativeTimestamps": { "description": "When enabled, treats the first timestamp as a reference point, interpreting subsequent timestamps as relative offsets from this initial time.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/HistorySplitter", "title": "HistorySplitter", "type": "object", "properties": { "primaryHistorian": { "description": "The primary historian for data storage and queries. Serves as the default query source unless limited by time constraints or when unavailable.", "type": "string", "x-ignition-non-secret": false }, "secondaryHistorian": { "description": "The secondary historian for data storage, handling queries when the primary is unavailable or when queries exceed the configured time limit.", "type": "string", "x-ignition-non-secret": false }, "queryLimit": { "description": "Controls whether queries are routed based on time constraints.", "type": "object", "properties": { "enabled": { "description": "If enabled, older queries are automatically directed to the secondary historian.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how far back in time queries will be handled by the primary historian before routing to the secondary historian.", "type": "number", "x-ignition-non-secret": false }, "units": { "description": "The time unit used for the query routing threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/InternalHistorian", "title": "InternalHistorian", "type": "object", "properties": { "timeLimit": { "description": "Controls whether data is retained based on age.", "type": "object", "properties": { "enabled": { "description": "If enabled, older data is removed to maintain the specified time limit.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how long data should be retained before removal.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "The time unit used for the storage time limit.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pointLimit": { "description": "Controls whether data is limited by the total number of stored points.", "type": "object", "properties": { "enabled": { "description": "If enabled, oldest points are removed when limit is exceeded.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the maximum number of data points to retain in storage.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "remoteSync": { "description": "Configures real-time data synchronization to a remote gateway historian.", "type": "object", "properties": { "enabled": { "description": "If enabled, historical data is synchronized based on the specified frequency, batch size, and optional schedule constraints.", "type": "boolean", "x-ignition-non-secret": false }, "serverName": { "description": "The target Gateway for remote synchronization. Must have the Historian Core module installed and allow remote storage.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "The historian on the remote gateway where data will be synchronized.", "type": "string", "x-ignition-non-secret": false }, "enableSchedule": { "description": "When enabled, data synchronization only occurs during the specified time ranges.", "type": "boolean", "x-ignition-non-secret": false }, "schedule": { "description": "Defines when synchronization is allowed using time ranges in 24-hour format. Examples: \"9:00-15:00\", \"21:00-05:00\", \"20:30-04:30\". Use comma-separation for multiple ranges.", "type": "string", "x-ignition-non-secret": false }, "syncFrequencySize": { "description": "Specifies the interval between data synchronization attempts to the remote gateway. Works in conjunction with the sync schedule when enabled.", "type": "number", "x-ignition-non-secret": false }, "syncFrequencyUnits": { "description": "The time unit used for the sync frequency.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maxBatchSize": { "description": "The maximum number of data points included in each synchronization transmission to the remote gateway.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/RemoteHistorian", "title": "RemoteHistorian", "type": "object", "properties": { "serverName": { "description": "Specifies the gateway used to connect to the remote historian.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "Specifies the target remote historian for data operations.", "type": "string", "x-ignition-non-secret": false }, "storageAllowed": { "description": "Specifies whether the provider operates in read-only or storage mode. When enabled, creates a store-forward engine to forward data to the remote gateway. When disabled, only supports historical data queries.", "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "Specifies the maximum number of data points per transmission request in storage mode. Set to 0 for unlimited batch size.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/SqlHistorian", "title": "SqlHistorian", "type": "object", "properties": { "database": { "description": "Specifies the target SQL database for storing and retrieving historical data.", "type": "string", "x-ignition-non-secret": false }, "partition": { "description": "Configures how data is segmented into time-based partitions.", "type": "object", "properties": { "enabled": { "description": "Enables time-based table partitioning to segment historical data. Partitioning improves query performance and simplifies data lifecycle management.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the time duration of each partition, using the defined time unit.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "Specifies the time unit used to define partition duration.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "optimized": { "description": "Enables data pre-processing within partitions to optimize query performance. While consuming additional storage space, this feature reduces query time by maintaining summarized data.", "type": "boolean", "x-ignition-non-secret": false }, "optimizedWindowSeconds": { "description": "Specifies the time interval used for data summarization when partition optimization is enabled.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "description": "Configures data pruning by specifying the age threshold and time units for determining when historical data becomes eligible for deletion at the partition level.", "type": "object", "properties": { "enabled": { "description": "Enables periodic pruning of older partitions.", "type": "boolean", "x-ignition-non-secret": false }, "age": { "description": "Specifies the age threshold for data retention.", "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "description": "Specifies the time unit used for the data retention age threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "trackSce": { "description": "Controls quality validation for calculated values based on tag group execution status. When enabled, values are marked as bad quality if calculated outside their tag group's execution period. When disabled, values inherit the tag's latest quality state.", "type": "boolean", "x-ignition-non-secret": false }, "staleMultiplier": { "description": "Defines the staleness threshold as a multiple of the tag group execution rate. Values are marked as bad quality when the time since last recorded execution exceeds this threshold.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/WideDbHistorian", "title": "WideDbHistorian", "type": "object", "properties": { "datasource": { "description": "Specifies the target SQL database for querying historical data.", "type": "string", "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CoreHistorian", "CsvHistorian", "HistorySplitter", "InternalHistorian", "RemoteHistorian", "SimulatorHistorian", "SqlHistorian", "WideDbHistorian" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.historian/historian-provider/CoreHistorian", "title": "CoreHistorian", "type": "object", "properties": { "partitionInterval": { "description": "The partition interval used when creating tables.", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "dataDeduplication": { "description": "When deduplication is enabled, incoming data with matching keys will update existing entries rather than create new ones, which helps maintain data integrity by allowing corrected data to replace erroneous entries.", "type": "boolean", "x-ignition-non-secret": false }, "maintenanceSettings": { "description": "Specifies the maintenance settings for handling data that exceeds the retention limit.", "type": "object", "properties": { "strategy": { "description": "Determines whether older data is archived to a target location or permanently deleted.", "type": "string", "enum": [ "NONE", "ARCHIVE", "PRUNE" ], "x-ignition-non-secret": false }, "directory": { "description": "Specifies the target directory path where data will be archived when maintenance mode is set to ARCHIVE. Must be a valid, writable directory location.", "type": "string", "x-ignition-non-secret": false }, "maintenanceAgeUnits": { "description": "\u00bfCoreHistorianSettings.MaintenanceAgeUnit.Description?", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maintenanceAge": { "description": "Specifies the age threshold for data maintenance.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/CsvHistorian", "title": "CsvHistorian", "type": "object", "properties": { "filePath": { "description": "Specifies the CSV file path. Required format: timestamp column followed by value columns, with tag names defined in the header row.", "type": "string", "x-ignition-non-secret": false }, "relativeTimestamps": { "description": "When enabled, treats the first timestamp as a reference point, interpreting subsequent timestamps as relative offsets from this initial time.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/HistorySplitter", "title": "HistorySplitter", "type": "object", "properties": { "primaryHistorian": { "description": "The primary historian for data storage and queries. Serves as the default query source unless limited by time constraints or when unavailable.", "type": "string", "x-ignition-non-secret": false }, "secondaryHistorian": { "description": "The secondary historian for data storage, handling queries when the primary is unavailable or when queries exceed the configured time limit.", "type": "string", "x-ignition-non-secret": false }, "queryLimit": { "description": "Controls whether queries are routed based on time constraints.", "type": "object", "properties": { "enabled": { "description": "If enabled, older queries are automatically directed to the secondary historian.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how far back in time queries will be handled by the primary historian before routing to the secondary historian.", "type": "number", "x-ignition-non-secret": false }, "units": { "description": "The time unit used for the query routing threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/InternalHistorian", "title": "InternalHistorian", "type": "object", "properties": { "timeLimit": { "description": "Controls whether data is retained based on age.", "type": "object", "properties": { "enabled": { "description": "If enabled, older data is removed to maintain the specified time limit.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how long data should be retained before removal.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "The time unit used for the storage time limit.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pointLimit": { "description": "Controls whether data is limited by the total number of stored points.", "type": "object", "properties": { "enabled": { "description": "If enabled, oldest points are removed when limit is exceeded.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the maximum number of data points to retain in storage.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "remoteSync": { "description": "Configures real-time data synchronization to a remote gateway historian.", "type": "object", "properties": { "enabled": { "description": "If enabled, historical data is synchronized based on the specified frequency, batch size, and optional schedule constraints.", "type": "boolean", "x-ignition-non-secret": false }, "serverName": { "description": "The target Gateway for remote synchronization. Must have the Historian Core module installed and allow remote storage.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "The historian on the remote gateway where data will be synchronized.", "type": "string", "x-ignition-non-secret": false }, "enableSchedule": { "description": "When enabled, data synchronization only occurs during the specified time ranges.", "type": "boolean", "x-ignition-non-secret": false }, "schedule": { "description": "Defines when synchronization is allowed using time ranges in 24-hour format. Examples: \"9:00-15:00\", \"21:00-05:00\", \"20:30-04:30\". Use comma-separation for multiple ranges.", "type": "string", "x-ignition-non-secret": false }, "syncFrequencySize": { "description": "Specifies the interval between data synchronization attempts to the remote gateway. Works in conjunction with the sync schedule when enabled.", "type": "number", "x-ignition-non-secret": false }, "syncFrequencyUnits": { "description": "The time unit used for the sync frequency.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maxBatchSize": { "description": "The maximum number of data points included in each synchronization transmission to the remote gateway.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/RemoteHistorian", "title": "RemoteHistorian", "type": "object", "properties": { "serverName": { "description": "Specifies the gateway used to connect to the remote historian.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "Specifies the target remote historian for data operations.", "type": "string", "x-ignition-non-secret": false }, "storageAllowed": { "description": "Specifies whether the provider operates in read-only or storage mode. When enabled, creates a store-forward engine to forward data to the remote gateway. When disabled, only supports historical data queries.", "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "Specifies the maximum number of data points per transmission request in storage mode. Set to 0 for unlimited batch size.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/SqlHistorian", "title": "SqlHistorian", "type": "object", "properties": { "database": { "description": "Specifies the target SQL database for storing and retrieving historical data.", "type": "string", "x-ignition-non-secret": false }, "partition": { "description": "Configures how data is segmented into time-based partitions.", "type": "object", "properties": { "enabled": { "description": "Enables time-based table partitioning to segment historical data. Partitioning improves query performance and simplifies data lifecycle management.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the time duration of each partition, using the defined time unit.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "Specifies the time unit used to define partition duration.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "optimized": { "description": "Enables data pre-processing within partitions to optimize query performance. While consuming additional storage space, this feature reduces query time by maintaining summarized data.", "type": "boolean", "x-ignition-non-secret": false }, "optimizedWindowSeconds": { "description": "Specifies the time interval used for data summarization when partition optimization is enabled.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "description": "Configures data pruning by specifying the age threshold and time units for determining when historical data becomes eligible for deletion at the partition level.", "type": "object", "properties": { "enabled": { "description": "Enables periodic pruning of older partitions.", "type": "boolean", "x-ignition-non-secret": false }, "age": { "description": "Specifies the age threshold for data retention.", "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "description": "Specifies the time unit used for the data retention age threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "trackSce": { "description": "Controls quality validation for calculated values based on tag group execution status. When enabled, values are marked as bad quality if calculated outside their tag group's execution period. When disabled, values inherit the tag's latest quality state.", "type": "boolean", "x-ignition-non-secret": false }, "staleMultiplier": { "description": "Defines the staleness threshold as a multiple of the tag group execution rate. Values are marked as bad quality when the time since last recorded execution exceeds this threshold.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/WideDbHistorian", "title": "WideDbHistorian", "type": "object", "properties": { "datasource": { "description": "Specifies the target SQL database for querying historical data.", "type": "string", "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "historian-config" ], "summary": "Create Historian", "description": "Create a new Historian resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CoreHistorian", "CsvHistorian", "HistorySplitter", "InternalHistorian", "RemoteHistorian", "SimulatorHistorian", "SqlHistorian", "WideDbHistorian" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.historian/historian-provider/CoreHistorian", "title": "CoreHistorian", "type": "object", "properties": { "partitionInterval": { "description": "The partition interval used when creating tables.", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "dataDeduplication": { "description": "When deduplication is enabled, incoming data with matching keys will update existing entries rather than create new ones, which helps maintain data integrity by allowing corrected data to replace erroneous entries.", "type": "boolean", "x-ignition-non-secret": false }, "maintenanceSettings": { "description": "Specifies the maintenance settings for handling data that exceeds the retention limit.", "type": "object", "properties": { "strategy": { "description": "Determines whether older data is archived to a target location or permanently deleted.", "type": "string", "enum": [ "NONE", "ARCHIVE", "PRUNE" ], "x-ignition-non-secret": false }, "directory": { "description": "Specifies the target directory path where data will be archived when maintenance mode is set to ARCHIVE. Must be a valid, writable directory location.", "type": "string", "x-ignition-non-secret": false }, "maintenanceAgeUnits": { "description": "\u00bfCoreHistorianSettings.MaintenanceAgeUnit.Description?", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maintenanceAge": { "description": "Specifies the age threshold for data maintenance.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/CsvHistorian", "title": "CsvHistorian", "type": "object", "properties": { "filePath": { "description": "Specifies the CSV file path. Required format: timestamp column followed by value columns, with tag names defined in the header row.", "type": "string", "x-ignition-non-secret": false }, "relativeTimestamps": { "description": "When enabled, treats the first timestamp as a reference point, interpreting subsequent timestamps as relative offsets from this initial time.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/HistorySplitter", "title": "HistorySplitter", "type": "object", "properties": { "primaryHistorian": { "description": "The primary historian for data storage and queries. Serves as the default query source unless limited by time constraints or when unavailable.", "type": "string", "x-ignition-non-secret": false }, "secondaryHistorian": { "description": "The secondary historian for data storage, handling queries when the primary is unavailable or when queries exceed the configured time limit.", "type": "string", "x-ignition-non-secret": false }, "queryLimit": { "description": "Controls whether queries are routed based on time constraints.", "type": "object", "properties": { "enabled": { "description": "If enabled, older queries are automatically directed to the secondary historian.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how far back in time queries will be handled by the primary historian before routing to the secondary historian.", "type": "number", "x-ignition-non-secret": false }, "units": { "description": "The time unit used for the query routing threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/InternalHistorian", "title": "InternalHistorian", "type": "object", "properties": { "timeLimit": { "description": "Controls whether data is retained based on age.", "type": "object", "properties": { "enabled": { "description": "If enabled, older data is removed to maintain the specified time limit.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how long data should be retained before removal.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "The time unit used for the storage time limit.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pointLimit": { "description": "Controls whether data is limited by the total number of stored points.", "type": "object", "properties": { "enabled": { "description": "If enabled, oldest points are removed when limit is exceeded.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the maximum number of data points to retain in storage.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "remoteSync": { "description": "Configures real-time data synchronization to a remote gateway historian.", "type": "object", "properties": { "enabled": { "description": "If enabled, historical data is synchronized based on the specified frequency, batch size, and optional schedule constraints.", "type": "boolean", "x-ignition-non-secret": false }, "serverName": { "description": "The target Gateway for remote synchronization. Must have the Historian Core module installed and allow remote storage.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "The historian on the remote gateway where data will be synchronized.", "type": "string", "x-ignition-non-secret": false }, "enableSchedule": { "description": "When enabled, data synchronization only occurs during the specified time ranges.", "type": "boolean", "x-ignition-non-secret": false }, "schedule": { "description": "Defines when synchronization is allowed using time ranges in 24-hour format. Examples: \"9:00-15:00\", \"21:00-05:00\", \"20:30-04:30\". Use comma-separation for multiple ranges.", "type": "string", "x-ignition-non-secret": false }, "syncFrequencySize": { "description": "Specifies the interval between data synchronization attempts to the remote gateway. Works in conjunction with the sync schedule when enabled.", "type": "number", "x-ignition-non-secret": false }, "syncFrequencyUnits": { "description": "The time unit used for the sync frequency.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maxBatchSize": { "description": "The maximum number of data points included in each synchronization transmission to the remote gateway.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/RemoteHistorian", "title": "RemoteHistorian", "type": "object", "properties": { "serverName": { "description": "Specifies the gateway used to connect to the remote historian.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "Specifies the target remote historian for data operations.", "type": "string", "x-ignition-non-secret": false }, "storageAllowed": { "description": "Specifies whether the provider operates in read-only or storage mode. When enabled, creates a store-forward engine to forward data to the remote gateway. When disabled, only supports historical data queries.", "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "Specifies the maximum number of data points per transmission request in storage mode. Set to 0 for unlimited batch size.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/SqlHistorian", "title": "SqlHistorian", "type": "object", "properties": { "database": { "description": "Specifies the target SQL database for storing and retrieving historical data.", "type": "string", "x-ignition-non-secret": false }, "partition": { "description": "Configures how data is segmented into time-based partitions.", "type": "object", "properties": { "enabled": { "description": "Enables time-based table partitioning to segment historical data. Partitioning improves query performance and simplifies data lifecycle management.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the time duration of each partition, using the defined time unit.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "Specifies the time unit used to define partition duration.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "optimized": { "description": "Enables data pre-processing within partitions to optimize query performance. While consuming additional storage space, this feature reduces query time by maintaining summarized data.", "type": "boolean", "x-ignition-non-secret": false }, "optimizedWindowSeconds": { "description": "Specifies the time interval used for data summarization when partition optimization is enabled.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "description": "Configures data pruning by specifying the age threshold and time units for determining when historical data becomes eligible for deletion at the partition level.", "type": "object", "properties": { "enabled": { "description": "Enables periodic pruning of older partitions.", "type": "boolean", "x-ignition-non-secret": false }, "age": { "description": "Specifies the age threshold for data retention.", "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "description": "Specifies the time unit used for the data retention age threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "trackSce": { "description": "Controls quality validation for calculated values based on tag group execution status. When enabled, values are marked as bad quality if calculated outside their tag group's execution period. When disabled, values inherit the tag's latest quality state.", "type": "boolean", "x-ignition-non-secret": false }, "staleMultiplier": { "description": "Defines the staleness threshold as a multiple of the tag group execution rate. Values are marked as bad quality when the time since last recorded execution exceeds this threshold.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/WideDbHistorian", "title": "WideDbHistorian", "type": "object", "properties": { "datasource": { "description": "Specifies the target SQL database for querying historical data.", "type": "string", "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CoreHistorian", "CsvHistorian", "HistorySplitter", "InternalHistorian", "RemoteHistorian", "SimulatorHistorian", "SqlHistorian", "WideDbHistorian" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.historian/historian-provider/CoreHistorian", "title": "CoreHistorian", "type": "object", "properties": { "partitionInterval": { "description": "The partition interval used when creating tables.", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "dataDeduplication": { "description": "When deduplication is enabled, incoming data with matching keys will update existing entries rather than create new ones, which helps maintain data integrity by allowing corrected data to replace erroneous entries.", "type": "boolean", "x-ignition-non-secret": false }, "maintenanceSettings": { "description": "Specifies the maintenance settings for handling data that exceeds the retention limit.", "type": "object", "properties": { "strategy": { "description": "Determines whether older data is archived to a target location or permanently deleted.", "type": "string", "enum": [ "NONE", "ARCHIVE", "PRUNE" ], "x-ignition-non-secret": false }, "directory": { "description": "Specifies the target directory path where data will be archived when maintenance mode is set to ARCHIVE. Must be a valid, writable directory location.", "type": "string", "x-ignition-non-secret": false }, "maintenanceAgeUnits": { "description": "\u00bfCoreHistorianSettings.MaintenanceAgeUnit.Description?", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maintenanceAge": { "description": "Specifies the age threshold for data maintenance.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/CsvHistorian", "title": "CsvHistorian", "type": "object", "properties": { "filePath": { "description": "Specifies the CSV file path. Required format: timestamp column followed by value columns, with tag names defined in the header row.", "type": "string", "x-ignition-non-secret": false }, "relativeTimestamps": { "description": "When enabled, treats the first timestamp as a reference point, interpreting subsequent timestamps as relative offsets from this initial time.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/HistorySplitter", "title": "HistorySplitter", "type": "object", "properties": { "primaryHistorian": { "description": "The primary historian for data storage and queries. Serves as the default query source unless limited by time constraints or when unavailable.", "type": "string", "x-ignition-non-secret": false }, "secondaryHistorian": { "description": "The secondary historian for data storage, handling queries when the primary is unavailable or when queries exceed the configured time limit.", "type": "string", "x-ignition-non-secret": false }, "queryLimit": { "description": "Controls whether queries are routed based on time constraints.", "type": "object", "properties": { "enabled": { "description": "If enabled, older queries are automatically directed to the secondary historian.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how far back in time queries will be handled by the primary historian before routing to the secondary historian.", "type": "number", "x-ignition-non-secret": false }, "units": { "description": "The time unit used for the query routing threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/InternalHistorian", "title": "InternalHistorian", "type": "object", "properties": { "timeLimit": { "description": "Controls whether data is retained based on age.", "type": "object", "properties": { "enabled": { "description": "If enabled, older data is removed to maintain the specified time limit.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how long data should be retained before removal.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "The time unit used for the storage time limit.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pointLimit": { "description": "Controls whether data is limited by the total number of stored points.", "type": "object", "properties": { "enabled": { "description": "If enabled, oldest points are removed when limit is exceeded.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the maximum number of data points to retain in storage.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "remoteSync": { "description": "Configures real-time data synchronization to a remote gateway historian.", "type": "object", "properties": { "enabled": { "description": "If enabled, historical data is synchronized based on the specified frequency, batch size, and optional schedule constraints.", "type": "boolean", "x-ignition-non-secret": false }, "serverName": { "description": "The target Gateway for remote synchronization. Must have the Historian Core module installed and allow remote storage.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "The historian on the remote gateway where data will be synchronized.", "type": "string", "x-ignition-non-secret": false }, "enableSchedule": { "description": "When enabled, data synchronization only occurs during the specified time ranges.", "type": "boolean", "x-ignition-non-secret": false }, "schedule": { "description": "Defines when synchronization is allowed using time ranges in 24-hour format. Examples: \"9:00-15:00\", \"21:00-05:00\", \"20:30-04:30\". Use comma-separation for multiple ranges.", "type": "string", "x-ignition-non-secret": false }, "syncFrequencySize": { "description": "Specifies the interval between data synchronization attempts to the remote gateway. Works in conjunction with the sync schedule when enabled.", "type": "number", "x-ignition-non-secret": false }, "syncFrequencyUnits": { "description": "The time unit used for the sync frequency.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maxBatchSize": { "description": "The maximum number of data points included in each synchronization transmission to the remote gateway.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/RemoteHistorian", "title": "RemoteHistorian", "type": "object", "properties": { "serverName": { "description": "Specifies the gateway used to connect to the remote historian.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "Specifies the target remote historian for data operations.", "type": "string", "x-ignition-non-secret": false }, "storageAllowed": { "description": "Specifies whether the provider operates in read-only or storage mode. When enabled, creates a store-forward engine to forward data to the remote gateway. When disabled, only supports historical data queries.", "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "Specifies the maximum number of data points per transmission request in storage mode. Set to 0 for unlimited batch size.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/SqlHistorian", "title": "SqlHistorian", "type": "object", "properties": { "database": { "description": "Specifies the target SQL database for storing and retrieving historical data.", "type": "string", "x-ignition-non-secret": false }, "partition": { "description": "Configures how data is segmented into time-based partitions.", "type": "object", "properties": { "enabled": { "description": "Enables time-based table partitioning to segment historical data. Partitioning improves query performance and simplifies data lifecycle management.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the time duration of each partition, using the defined time unit.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "Specifies the time unit used to define partition duration.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "optimized": { "description": "Enables data pre-processing within partitions to optimize query performance. While consuming additional storage space, this feature reduces query time by maintaining summarized data.", "type": "boolean", "x-ignition-non-secret": false }, "optimizedWindowSeconds": { "description": "Specifies the time interval used for data summarization when partition optimization is enabled.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "description": "Configures data pruning by specifying the age threshold and time units for determining when historical data becomes eligible for deletion at the partition level.", "type": "object", "properties": { "enabled": { "description": "Enables periodic pruning of older partitions.", "type": "boolean", "x-ignition-non-secret": false }, "age": { "description": "Specifies the age threshold for data retention.", "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "description": "Specifies the time unit used for the data retention age threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "trackSce": { "description": "Controls quality validation for calculated values based on tag group execution status. When enabled, values are marked as bad quality if calculated outside their tag group's execution period. When disabled, values inherit the tag's latest quality state.", "type": "boolean", "x-ignition-non-secret": false }, "staleMultiplier": { "description": "Defines the staleness threshold as a multiple of the tag group execution rate. Values are marked as bad quality when the time since last recorded execution exceeds this threshold.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/WideDbHistorian", "title": "WideDbHistorian", "type": "object", "properties": { "datasource": { "description": "Specifies the target SQL database for querying historical data.", "type": "string", "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.historian/historian-provider/{name}/{signature}": { "delete": { "tags": [ "historian-config" ], "summary": "Delete Historian", "description": "Delete a Historian resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig": { "put": { "tags": [ "local-devices" ], "summary": "Modify Local Devices", "description": "Modify one or more Local Devices resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "ipConnectivity": { "type": "object", "properties": { "bindAddress": { "type": "string", "x-ignition-non-secret": false }, "bindPort": { "type": "number", "x-ignition-non-secret": false }, "broadcastAddress": { "type": "string", "x-ignition-non-secret": false }, "networkPrefixLength": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "bacnetConnectivity": { "type": "object", "properties": { "deviceNumber": { "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "broadcastManagement": { "type": "object", "properties": { "foreignDeviceRegistrationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "backupDeviceNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "ipConnectivity": { "type": "object", "properties": { "bindAddress": { "type": "string", "x-ignition-non-secret": false }, "bindPort": { "type": "number", "x-ignition-non-secret": false }, "broadcastAddress": { "type": "string", "x-ignition-non-secret": false }, "networkPrefixLength": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "bacnetConnectivity": { "type": "object", "properties": { "deviceNumber": { "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "broadcastManagement": { "type": "object", "properties": { "foreignDeviceRegistrationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "backupDeviceNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "local-devices" ], "summary": "Create Local Devices", "description": "Create a new Local Devices resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "ipConnectivity": { "type": "object", "properties": { "bindAddress": { "type": "string", "x-ignition-non-secret": false }, "bindPort": { "type": "number", "x-ignition-non-secret": false }, "broadcastAddress": { "type": "string", "x-ignition-non-secret": false }, "networkPrefixLength": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "bacnetConnectivity": { "type": "object", "properties": { "deviceNumber": { "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "broadcastManagement": { "type": "object", "properties": { "foreignDeviceRegistrationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "backupDeviceNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "ipConnectivity": { "type": "object", "properties": { "bindAddress": { "type": "string", "x-ignition-non-secret": false }, "bindPort": { "type": "number", "x-ignition-non-secret": false }, "broadcastAddress": { "type": "string", "x-ignition-non-secret": false }, "networkPrefixLength": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "bacnetConnectivity": { "type": "object", "properties": { "deviceNumber": { "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "broadcastManagement": { "type": "object", "properties": { "foreignDeviceRegistrationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "backupDeviceNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig/{name}/{signature}": { "delete": { "tags": [ "local-devices" ], "summary": "Delete Local Devices", "description": "Delete a Local Devices resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.opcua/access-control": { "put": { "tags": [ "access-control" ], "summary": "Modify OPC UA Access Control Config", "description": "Modify one or more OPC UA Access Control Config resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "defaultDeviceRolePermissionMappings": { "description": "Default role permission mappings for devices.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "defaultTagProviderRolePermissionMappings": { "description": "Default role permission mappings for tags.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "tagProviderRolePermissionMappings": { "description": "Role permission mappings for specific tag providers.", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } } } } }, "backupConfig": { "properties": { "defaultDeviceRolePermissionMappings": { "description": "Default role permission mappings for devices.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "defaultTagProviderRolePermissionMappings": { "description": "Default role permission mappings for tags.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "tagProviderRolePermissionMappings": { "description": "Role permission mappings for specific tag providers.", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } } } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "access-control" ], "summary": "Create OPC UA Access Control Config", "description": "Create the OPC UA Access Control Config resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "defaultDeviceRolePermissionMappings": { "description": "Default role permission mappings for devices.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "defaultTagProviderRolePermissionMappings": { "description": "Default role permission mappings for tags.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "tagProviderRolePermissionMappings": { "description": "Role permission mappings for specific tag providers.", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } } } } }, "backupConfig": { "properties": { "defaultDeviceRolePermissionMappings": { "description": "Default role permission mappings for devices.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "defaultTagProviderRolePermissionMappings": { "description": "Default role permission mappings for tags.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "tagProviderRolePermissionMappings": { "description": "Role permission mappings for specific tag providers.", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } } } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.opcua/access-control/{signature}": { "delete": { "tags": [ "access-control" ], "summary": "Delete OPC UA Access Control Config", "description": "Delete the OPC UA Access Control Config resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.opcua/device": { "put": { "tags": [ "device" ], "summary": "Modify Devices", "description": "Modify one or more Devices resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CompactLogix", "ControlLogix", "DairyDemoSimulator", "Dnp3Driver", "LogixDriver", "MicroLogix", "ModbusRtu", "ModbusRtuOverTcp", "ModbusTcp", "PLC5", "ProgrammableSimulatorDevice", "S71200", "S71500", "S7300", "S7400", "SLC", "SLCSimulator", "Simulator", "TCPDriver", "UDPDriver", "com.inductiveautomation.BacnetIpDeviceType", "com.inductiveautomation.FinsTcpDeviceType", "com.inductiveautomation.FinsUdpDeviceType", "com.inductiveautomation.Micro800DeviceType", "com.inductiveautomation.MitsubishiTcpDeviceType", "com.inductiveautomation.ignition.siemens", "com.inductiveautomation.omron.NjDriver" ] }, "browsePath": { "type": "string", "x-ignition-non-secret": false }, "rolePermissionMappings": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.opcua/device/CompactLogix", "title": "CompactLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ControlLogix", "title": "ControlLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/Dnp3Driver", "title": "Dnp3Driver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "sourceAddress": { "type": "number", "x-ignition-non-secret": false }, "destinationAddress": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "integrityPollInterval": { "type": "number", "x-ignition-non-secret": false }, "directOperateEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "unsolicitedMessagingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxMessageFragmentSize": { "type": "number", "x-ignition-non-secret": false }, "retries": { "type": "number", "x-ignition-non-secret": false }, "timeSynchronizationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "implementationLevel": { "type": "string", "enum": [ "UNKNOWN", "ONE", "TWO", "THREE", "FOUR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "defaults": { "type": "object", "properties": { "analogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenAnalogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "analogOutput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "counter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenCounter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "doubleBitBinaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryOutput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/LogixDriver", "title": "LogixDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "default": 44818, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Max amount of time to wait, in milliseconds, for responses from the processor.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "connectionPath": { "description": "Optionally, the connection path to the processor. If specified, the slot number setting is ignored, so be sure to terminate the path with backplane and slot number.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Connection Path" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "automaticRebrowseEnabled": { "description": "Monitor for tag additions and UDT changes and automatically initiate a re-browse when detected. If this is disabled tags will only be browsed when connecting and reconnecting.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Automatic Rebrowse" }, "type": "boolean", "x-ignition-non-secret": false }, "identityRequestFrequency": { "description": "Frequency, in milliseconds, that the request to read CIP Identity Object attributes occurs at.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Identity Request Frequency *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionSize": { "description": "The CIP connection size to use during Forward Open requests.", "default": 500, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "description": "Target timeout, in milliseconds, for CIP connections and RPI.", "default": 16000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in which the processor resides. If not in a rack, usually 0.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Controls both the max number of concurrent unconnected requests and the max number of concurrent connected requests (and therefore CIP connections) allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "identityRequestFrequency", "cipConnectionSize", "cipConnectionTimeout", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/MicroLogix", "title": "MicroLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtu", "title": "ModbusRtu", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "serialPort": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Serial Port *" }, "type": "string", "x-ignition-non-secret": false }, "bitRate": { "default": "BitRate_115200", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Bit Rate" }, "type": "string", "enum": [ "BitRate_110", "BitRate_150", "BitRate_300", "BitRate_600", "BitRate_1200", "BitRate_2400", "BitRate_4800", "BitRate_9600", "BitRate_19200", "BitRate_38400", "BitRate_57600", "BitRate_115200", "BitRate_230400", "BitRate_460800", "BitRate_921600" ], "x-ignition-non-secret": false }, "dataBits": { "default": "DataBits_8", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Data Bits" }, "type": "string", "enum": [ "DataBits_5", "DataBits_6", "DataBits_7", "DataBits_8" ], "x-ignition-non-secret": false }, "parity": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Parity" }, "type": "string", "enum": [ "Even", "Mark", "None", "Odd", "Space" ], "x-ignition-non-secret": false }, "stopBits": { "default": "StopBits_1", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Stop Bits" }, "type": "string", "enum": [ "StopBits_1", "StopBits_2" ], "x-ignition-non-secret": false }, "handshake": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Handshake" }, "type": "string", "enum": [ "None", "XonXoff", "CtsRts", "DsrDtr" ], "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "rs485Mode": { "description": "Enable if using RS-485 instead of RS-232.", "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "RS-485 Mode" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "serialPort", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtuOverTcp", "title": "ModbusRtuOverTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusTcp", "title": "ModbusTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/PLC5", "title": "PLC5", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ProgrammableSimulatorDevice", "title": "ProgrammableSimulatorDevice", "type": "object", "properties": { "repeat": { "type": "boolean", "x-ignition-non-secret": false }, "timeIntervalRate": { "type": "number", "x-ignition-non-secret": false }, "legacyMode": { "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71200", "title": "S71200", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71500", "title": "S71500", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7300", "title": "S7300", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7400", "title": "S7400", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/SLC", "title": "SLC", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/TCPDriver", "title": "TCPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false }, "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "connectTimeout": { "description": "The timeout, in milliseconds, when opening a socket connection to a remote host. Set to 0 to disable.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Connect Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "inactivityTimeout": { "description": "The number of milliseconds without receiving data from the source before a disconnect/reconnect is made. Set to 0 to disable.", "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Inactivity Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "ports", "address", "connectTimeout", "inactivityTimeout" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "write": { "type": "object", "properties": { "enabled": { "description": "Enable writeback capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "WRITING", "label": "Writeback Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "delimiter": { "description": "The delimiter expected by the device signaling the end of an incoming message.", "x-form": { "fieldType": "TEXT", "category": "WRITING", "label": "Writeback Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Duration, in milliseconds, to wait for writes to complete before returning.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "WRITING", "label": "Write Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "timeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/UDPDriver", "title": "UDPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "address", "ports" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "udp": { "type": "object", "properties": { "bufferSize": { "description": "The size of the message buffer in bytes.", "default": 4096, "x-form": { "fieldType": "NUMBER", "category": "UDP", "label": "Message Buffer Size" }, "type": "number", "x-ignition-non-secret": false }, "multicast": { "description": "Enable multicast capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "UDP", "label": "Multicast" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.BacnetIpDeviceType", "title": "com.inductiveautomation.BacnetIpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "localDevice": { "description": "The name of the local BACnet device instance that will be used when communicating with the remote device.", "x-form": { "fieldType": "REFERENCE", "category": "CONNECTIVITY", "label": "Local Device *", "referenceType": "com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig" }, "type": "string", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the remote device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port that the remote device is listening on.", "default": 47808, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteDeviceNumber": { "description": "The instance number/id of the remote device.", "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Device Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "localDevice", "remoteAddress", "remotePort", "remoteDeviceNumber" ], "x-ignition-non-secret": false }, "cov": { "type": "object", "properties": { "enabled": { "description": "If true a COV subscription is used for properties that support it. If false all properties are polled.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "COV Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "heartbeatInterval": { "description": "Interval, in seconds, between reading the System_Status property of the Device object as a heartbeat. If 3 consecutive attempts fail all COV items will be marked with uncertain quality.", "default": 5, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Heartbeat Interval" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionLifetime": { "description": "Lifetime, in seconds, of COV subscriptions. Use 0 for indefinite. When non-zero COV subscriptions are renewed at a rate of 75% of the lifetime.", "default": 900, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Lifetime" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionRetryInterval": { "description": "Interval, in seconds, to attempt recreating COV subscriptions that previously failed to be created or renewed. Use 0 to have failed subscription items remain polled.", "default": 120, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Retry Interval" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "confirmedNotificationsEnabled": { "description": "If true COV subscriptions use confirmed notifications. If false COV subscriptions use unconfirmed notifications.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "Confirmed Notifications Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "discoveryTimeout": { "description": "Duration, in seconds, to wait for the remote device discovery process to complete.", "default": 5, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Discovery Timeout" }, "type": "number", "x-ignition-non-secret": false }, "writePriority": { "description": "The priority to use when writing to commandable properties.", "default": 8, "minimum": 1, "maximum": 16, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Write Priority" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsTcpDeviceType", "title": "com.inductiveautomation.FinsTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname or IP address of the target device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsUdpDeviceType", "title": "com.inductiveautomation.FinsUdpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "bindAddress": { "description": "The hostname or IP address of the Gateway.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Bind Address *" }, "type": "string", "x-ignition-non-secret": false }, "bindPort": { "description": "The port you wish to create a UDP connection on for the Gateway.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Bind Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port your Omron device is listening on.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "bindAddress", "bindPort", "remoteAddress", "remotePort", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.Micro800DeviceType", "title": "com.inductiveautomation.Micro800DeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "writePriorityRatio": { "type": "number", "x-ignition-non-secret": false }, "autoRebrowseEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "cipConnectionSize": { "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.MitsubishiTcpDeviceType", "title": "com.inductiveautomation.MitsubishiTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The IP Address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 1025, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "series": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": "iQR", "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Series" }, "type": "string", "enum": [ "iQR", "iQF", "Q", "L", "F" ], "x-ignition-non-secret": false }, "pcNumber": { "description": "The network module station number of an access target.", "default": 255, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "PC Number *" }, "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "description": "The network number of an access target.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Network Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationIoModuleNumber": { "description": "The start input/output number of a multi-drop connection source module, or the CPU module of a multiple CPU system.", "default": 1023, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module I/O Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationModuleStationNumber": { "description": "The station number of an access target module when accessing a multi-drop connection station.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module Station Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pcNumber", "networkNumber", "destinationIoModuleNumber", "destinationModuleStationNumber" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations. Increasing the max gap size will reduce the number requests but increase the amount of data requested.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request when an abundance of both types are queued up for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.ignition.siemens", "title": "com.inductiveautomation.ignition.siemens", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 102, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "Maximum amount of time to wait for a response in milliseconds.", "default": 30000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "deviceType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Device Type *" }, "type": "string", "enum": [ "S7_300", "S7_400", "S7_1200", "S7_1500" ], "x-ignition-non-secret": false }, "addressType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Address Type *" }, "type": "string", "enum": [ "ABSOLUTE", "SYMBOLIC" ], "x-ignition-non-secret": false }, "rack": { "default": 0, "minimum": 0, "maximum": 7, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Rack Number *" }, "type": "number", "x-ignition-non-secret": false }, "slot": { "default": 0, "minimum": 0, "maximum": 31, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "deviceType", "addressType", "rack", "slot" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "optimizeWrites": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Optimize Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "forceSecureConnection": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Force Secure Connection" }, "type": "boolean", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "ADVANCED SETTINGS", "label": "Password" } } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.omron.NjDriver", "title": "com.inductiveautomation.omron.NjDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectionSize": { "description": "The CIP connection size to use.", "default": 1994, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "dateTimeOffsetHours": { "description": "Offset in hours for Date/Time values.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Date/Time Offset *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in the backplane in which the CPU is located.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "The number of concurrently issued requests allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Concurrency *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "connectionSize", "dateTimeOffsetHours", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CompactLogix", "ControlLogix", "DairyDemoSimulator", "Dnp3Driver", "LogixDriver", "MicroLogix", "ModbusRtu", "ModbusRtuOverTcp", "ModbusTcp", "PLC5", "ProgrammableSimulatorDevice", "S71200", "S71500", "S7300", "S7400", "SLC", "SLCSimulator", "Simulator", "TCPDriver", "UDPDriver", "com.inductiveautomation.BacnetIpDeviceType", "com.inductiveautomation.FinsTcpDeviceType", "com.inductiveautomation.FinsUdpDeviceType", "com.inductiveautomation.Micro800DeviceType", "com.inductiveautomation.MitsubishiTcpDeviceType", "com.inductiveautomation.ignition.siemens", "com.inductiveautomation.omron.NjDriver" ] }, "browsePath": { "type": "string", "x-ignition-non-secret": false }, "rolePermissionMappings": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.opcua/device/CompactLogix", "title": "CompactLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ControlLogix", "title": "ControlLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/Dnp3Driver", "title": "Dnp3Driver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "sourceAddress": { "type": "number", "x-ignition-non-secret": false }, "destinationAddress": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "integrityPollInterval": { "type": "number", "x-ignition-non-secret": false }, "directOperateEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "unsolicitedMessagingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxMessageFragmentSize": { "type": "number", "x-ignition-non-secret": false }, "retries": { "type": "number", "x-ignition-non-secret": false }, "timeSynchronizationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "implementationLevel": { "type": "string", "enum": [ "UNKNOWN", "ONE", "TWO", "THREE", "FOUR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "defaults": { "type": "object", "properties": { "analogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenAnalogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "analogOutput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "counter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenCounter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "doubleBitBinaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryOutput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/LogixDriver", "title": "LogixDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "default": 44818, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Max amount of time to wait, in milliseconds, for responses from the processor.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "connectionPath": { "description": "Optionally, the connection path to the processor. If specified, the slot number setting is ignored, so be sure to terminate the path with backplane and slot number.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Connection Path" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "automaticRebrowseEnabled": { "description": "Monitor for tag additions and UDT changes and automatically initiate a re-browse when detected. If this is disabled tags will only be browsed when connecting and reconnecting.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Automatic Rebrowse" }, "type": "boolean", "x-ignition-non-secret": false }, "identityRequestFrequency": { "description": "Frequency, in milliseconds, that the request to read CIP Identity Object attributes occurs at.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Identity Request Frequency *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionSize": { "description": "The CIP connection size to use during Forward Open requests.", "default": 500, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "description": "Target timeout, in milliseconds, for CIP connections and RPI.", "default": 16000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in which the processor resides. If not in a rack, usually 0.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Controls both the max number of concurrent unconnected requests and the max number of concurrent connected requests (and therefore CIP connections) allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "identityRequestFrequency", "cipConnectionSize", "cipConnectionTimeout", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/MicroLogix", "title": "MicroLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtu", "title": "ModbusRtu", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "serialPort": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Serial Port *" }, "type": "string", "x-ignition-non-secret": false }, "bitRate": { "default": "BitRate_115200", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Bit Rate" }, "type": "string", "enum": [ "BitRate_110", "BitRate_150", "BitRate_300", "BitRate_600", "BitRate_1200", "BitRate_2400", "BitRate_4800", "BitRate_9600", "BitRate_19200", "BitRate_38400", "BitRate_57600", "BitRate_115200", "BitRate_230400", "BitRate_460800", "BitRate_921600" ], "x-ignition-non-secret": false }, "dataBits": { "default": "DataBits_8", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Data Bits" }, "type": "string", "enum": [ "DataBits_5", "DataBits_6", "DataBits_7", "DataBits_8" ], "x-ignition-non-secret": false }, "parity": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Parity" }, "type": "string", "enum": [ "Even", "Mark", "None", "Odd", "Space" ], "x-ignition-non-secret": false }, "stopBits": { "default": "StopBits_1", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Stop Bits" }, "type": "string", "enum": [ "StopBits_1", "StopBits_2" ], "x-ignition-non-secret": false }, "handshake": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Handshake" }, "type": "string", "enum": [ "None", "XonXoff", "CtsRts", "DsrDtr" ], "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "rs485Mode": { "description": "Enable if using RS-485 instead of RS-232.", "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "RS-485 Mode" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "serialPort", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtuOverTcp", "title": "ModbusRtuOverTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusTcp", "title": "ModbusTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/PLC5", "title": "PLC5", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ProgrammableSimulatorDevice", "title": "ProgrammableSimulatorDevice", "type": "object", "properties": { "repeat": { "type": "boolean", "x-ignition-non-secret": false }, "timeIntervalRate": { "type": "number", "x-ignition-non-secret": false }, "legacyMode": { "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71200", "title": "S71200", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71500", "title": "S71500", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7300", "title": "S7300", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7400", "title": "S7400", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/SLC", "title": "SLC", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/TCPDriver", "title": "TCPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false }, "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "connectTimeout": { "description": "The timeout, in milliseconds, when opening a socket connection to a remote host. Set to 0 to disable.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Connect Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "inactivityTimeout": { "description": "The number of milliseconds without receiving data from the source before a disconnect/reconnect is made. Set to 0 to disable.", "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Inactivity Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "ports", "address", "connectTimeout", "inactivityTimeout" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "write": { "type": "object", "properties": { "enabled": { "description": "Enable writeback capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "WRITING", "label": "Writeback Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "delimiter": { "description": "The delimiter expected by the device signaling the end of an incoming message.", "x-form": { "fieldType": "TEXT", "category": "WRITING", "label": "Writeback Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Duration, in milliseconds, to wait for writes to complete before returning.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "WRITING", "label": "Write Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "timeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/UDPDriver", "title": "UDPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "address", "ports" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "udp": { "type": "object", "properties": { "bufferSize": { "description": "The size of the message buffer in bytes.", "default": 4096, "x-form": { "fieldType": "NUMBER", "category": "UDP", "label": "Message Buffer Size" }, "type": "number", "x-ignition-non-secret": false }, "multicast": { "description": "Enable multicast capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "UDP", "label": "Multicast" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.BacnetIpDeviceType", "title": "com.inductiveautomation.BacnetIpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "localDevice": { "description": "The name of the local BACnet device instance that will be used when communicating with the remote device.", "x-form": { "fieldType": "REFERENCE", "category": "CONNECTIVITY", "label": "Local Device *", "referenceType": "com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig" }, "type": "string", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the remote device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port that the remote device is listening on.", "default": 47808, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteDeviceNumber": { "description": "The instance number/id of the remote device.", "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Device Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "localDevice", "remoteAddress", "remotePort", "remoteDeviceNumber" ], "x-ignition-non-secret": false }, "cov": { "type": "object", "properties": { "enabled": { "description": "If true a COV subscription is used for properties that support it. If false all properties are polled.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "COV Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "heartbeatInterval": { "description": "Interval, in seconds, between reading the System_Status property of the Device object as a heartbeat. If 3 consecutive attempts fail all COV items will be marked with uncertain quality.", "default": 5, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Heartbeat Interval" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionLifetime": { "description": "Lifetime, in seconds, of COV subscriptions. Use 0 for indefinite. When non-zero COV subscriptions are renewed at a rate of 75% of the lifetime.", "default": 900, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Lifetime" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionRetryInterval": { "description": "Interval, in seconds, to attempt recreating COV subscriptions that previously failed to be created or renewed. Use 0 to have failed subscription items remain polled.", "default": 120, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Retry Interval" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "confirmedNotificationsEnabled": { "description": "If true COV subscriptions use confirmed notifications. If false COV subscriptions use unconfirmed notifications.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "Confirmed Notifications Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "discoveryTimeout": { "description": "Duration, in seconds, to wait for the remote device discovery process to complete.", "default": 5, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Discovery Timeout" }, "type": "number", "x-ignition-non-secret": false }, "writePriority": { "description": "The priority to use when writing to commandable properties.", "default": 8, "minimum": 1, "maximum": 16, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Write Priority" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsTcpDeviceType", "title": "com.inductiveautomation.FinsTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname or IP address of the target device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsUdpDeviceType", "title": "com.inductiveautomation.FinsUdpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "bindAddress": { "description": "The hostname or IP address of the Gateway.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Bind Address *" }, "type": "string", "x-ignition-non-secret": false }, "bindPort": { "description": "The port you wish to create a UDP connection on for the Gateway.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Bind Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port your Omron device is listening on.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "bindAddress", "bindPort", "remoteAddress", "remotePort", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.Micro800DeviceType", "title": "com.inductiveautomation.Micro800DeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "writePriorityRatio": { "type": "number", "x-ignition-non-secret": false }, "autoRebrowseEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "cipConnectionSize": { "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.MitsubishiTcpDeviceType", "title": "com.inductiveautomation.MitsubishiTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The IP Address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 1025, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "series": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": "iQR", "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Series" }, "type": "string", "enum": [ "iQR", "iQF", "Q", "L", "F" ], "x-ignition-non-secret": false }, "pcNumber": { "description": "The network module station number of an access target.", "default": 255, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "PC Number *" }, "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "description": "The network number of an access target.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Network Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationIoModuleNumber": { "description": "The start input/output number of a multi-drop connection source module, or the CPU module of a multiple CPU system.", "default": 1023, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module I/O Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationModuleStationNumber": { "description": "The station number of an access target module when accessing a multi-drop connection station.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module Station Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pcNumber", "networkNumber", "destinationIoModuleNumber", "destinationModuleStationNumber" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations. Increasing the max gap size will reduce the number requests but increase the amount of data requested.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request when an abundance of both types are queued up for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.ignition.siemens", "title": "com.inductiveautomation.ignition.siemens", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 102, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "Maximum amount of time to wait for a response in milliseconds.", "default": 30000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "deviceType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Device Type *" }, "type": "string", "enum": [ "S7_300", "S7_400", "S7_1200", "S7_1500" ], "x-ignition-non-secret": false }, "addressType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Address Type *" }, "type": "string", "enum": [ "ABSOLUTE", "SYMBOLIC" ], "x-ignition-non-secret": false }, "rack": { "default": 0, "minimum": 0, "maximum": 7, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Rack Number *" }, "type": "number", "x-ignition-non-secret": false }, "slot": { "default": 0, "minimum": 0, "maximum": 31, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "deviceType", "addressType", "rack", "slot" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "optimizeWrites": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Optimize Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "forceSecureConnection": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Force Secure Connection" }, "type": "boolean", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "ADVANCED SETTINGS", "label": "Password" } } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.omron.NjDriver", "title": "com.inductiveautomation.omron.NjDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectionSize": { "description": "The CIP connection size to use.", "default": 1994, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "dateTimeOffsetHours": { "description": "Offset in hours for Date/Time values.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Date/Time Offset *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in the backplane in which the CPU is located.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "The number of concurrently issued requests allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Concurrency *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "connectionSize", "dateTimeOffsetHours", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "device" ], "summary": "Create Devices", "description": "Create a new Devices resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CompactLogix", "ControlLogix", "DairyDemoSimulator", "Dnp3Driver", "LogixDriver", "MicroLogix", "ModbusRtu", "ModbusRtuOverTcp", "ModbusTcp", "PLC5", "ProgrammableSimulatorDevice", "S71200", "S71500", "S7300", "S7400", "SLC", "SLCSimulator", "Simulator", "TCPDriver", "UDPDriver", "com.inductiveautomation.BacnetIpDeviceType", "com.inductiveautomation.FinsTcpDeviceType", "com.inductiveautomation.FinsUdpDeviceType", "com.inductiveautomation.Micro800DeviceType", "com.inductiveautomation.MitsubishiTcpDeviceType", "com.inductiveautomation.ignition.siemens", "com.inductiveautomation.omron.NjDriver" ] }, "browsePath": { "type": "string", "x-ignition-non-secret": false }, "rolePermissionMappings": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.opcua/device/CompactLogix", "title": "CompactLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ControlLogix", "title": "ControlLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/Dnp3Driver", "title": "Dnp3Driver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "sourceAddress": { "type": "number", "x-ignition-non-secret": false }, "destinationAddress": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "integrityPollInterval": { "type": "number", "x-ignition-non-secret": false }, "directOperateEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "unsolicitedMessagingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxMessageFragmentSize": { "type": "number", "x-ignition-non-secret": false }, "retries": { "type": "number", "x-ignition-non-secret": false }, "timeSynchronizationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "implementationLevel": { "type": "string", "enum": [ "UNKNOWN", "ONE", "TWO", "THREE", "FOUR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "defaults": { "type": "object", "properties": { "analogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenAnalogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "analogOutput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "counter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenCounter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "doubleBitBinaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryOutput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/LogixDriver", "title": "LogixDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "default": 44818, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Max amount of time to wait, in milliseconds, for responses from the processor.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "connectionPath": { "description": "Optionally, the connection path to the processor. If specified, the slot number setting is ignored, so be sure to terminate the path with backplane and slot number.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Connection Path" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "automaticRebrowseEnabled": { "description": "Monitor for tag additions and UDT changes and automatically initiate a re-browse when detected. If this is disabled tags will only be browsed when connecting and reconnecting.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Automatic Rebrowse" }, "type": "boolean", "x-ignition-non-secret": false }, "identityRequestFrequency": { "description": "Frequency, in milliseconds, that the request to read CIP Identity Object attributes occurs at.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Identity Request Frequency *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionSize": { "description": "The CIP connection size to use during Forward Open requests.", "default": 500, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "description": "Target timeout, in milliseconds, for CIP connections and RPI.", "default": 16000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in which the processor resides. If not in a rack, usually 0.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Controls both the max number of concurrent unconnected requests and the max number of concurrent connected requests (and therefore CIP connections) allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "identityRequestFrequency", "cipConnectionSize", "cipConnectionTimeout", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/MicroLogix", "title": "MicroLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtu", "title": "ModbusRtu", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "serialPort": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Serial Port *" }, "type": "string", "x-ignition-non-secret": false }, "bitRate": { "default": "BitRate_115200", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Bit Rate" }, "type": "string", "enum": [ "BitRate_110", "BitRate_150", "BitRate_300", "BitRate_600", "BitRate_1200", "BitRate_2400", "BitRate_4800", "BitRate_9600", "BitRate_19200", "BitRate_38400", "BitRate_57600", "BitRate_115200", "BitRate_230400", "BitRate_460800", "BitRate_921600" ], "x-ignition-non-secret": false }, "dataBits": { "default": "DataBits_8", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Data Bits" }, "type": "string", "enum": [ "DataBits_5", "DataBits_6", "DataBits_7", "DataBits_8" ], "x-ignition-non-secret": false }, "parity": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Parity" }, "type": "string", "enum": [ "Even", "Mark", "None", "Odd", "Space" ], "x-ignition-non-secret": false }, "stopBits": { "default": "StopBits_1", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Stop Bits" }, "type": "string", "enum": [ "StopBits_1", "StopBits_2" ], "x-ignition-non-secret": false }, "handshake": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Handshake" }, "type": "string", "enum": [ "None", "XonXoff", "CtsRts", "DsrDtr" ], "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "rs485Mode": { "description": "Enable if using RS-485 instead of RS-232.", "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "RS-485 Mode" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "serialPort", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtuOverTcp", "title": "ModbusRtuOverTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusTcp", "title": "ModbusTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/PLC5", "title": "PLC5", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ProgrammableSimulatorDevice", "title": "ProgrammableSimulatorDevice", "type": "object", "properties": { "repeat": { "type": "boolean", "x-ignition-non-secret": false }, "timeIntervalRate": { "type": "number", "x-ignition-non-secret": false }, "legacyMode": { "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71200", "title": "S71200", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71500", "title": "S71500", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7300", "title": "S7300", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7400", "title": "S7400", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/SLC", "title": "SLC", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/TCPDriver", "title": "TCPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false }, "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "connectTimeout": { "description": "The timeout, in milliseconds, when opening a socket connection to a remote host. Set to 0 to disable.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Connect Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "inactivityTimeout": { "description": "The number of milliseconds without receiving data from the source before a disconnect/reconnect is made. Set to 0 to disable.", "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Inactivity Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "ports", "address", "connectTimeout", "inactivityTimeout" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "write": { "type": "object", "properties": { "enabled": { "description": "Enable writeback capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "WRITING", "label": "Writeback Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "delimiter": { "description": "The delimiter expected by the device signaling the end of an incoming message.", "x-form": { "fieldType": "TEXT", "category": "WRITING", "label": "Writeback Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Duration, in milliseconds, to wait for writes to complete before returning.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "WRITING", "label": "Write Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "timeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/UDPDriver", "title": "UDPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "address", "ports" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "udp": { "type": "object", "properties": { "bufferSize": { "description": "The size of the message buffer in bytes.", "default": 4096, "x-form": { "fieldType": "NUMBER", "category": "UDP", "label": "Message Buffer Size" }, "type": "number", "x-ignition-non-secret": false }, "multicast": { "description": "Enable multicast capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "UDP", "label": "Multicast" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.BacnetIpDeviceType", "title": "com.inductiveautomation.BacnetIpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "localDevice": { "description": "The name of the local BACnet device instance that will be used when communicating with the remote device.", "x-form": { "fieldType": "REFERENCE", "category": "CONNECTIVITY", "label": "Local Device *", "referenceType": "com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig" }, "type": "string", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the remote device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port that the remote device is listening on.", "default": 47808, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteDeviceNumber": { "description": "The instance number/id of the remote device.", "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Device Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "localDevice", "remoteAddress", "remotePort", "remoteDeviceNumber" ], "x-ignition-non-secret": false }, "cov": { "type": "object", "properties": { "enabled": { "description": "If true a COV subscription is used for properties that support it. If false all properties are polled.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "COV Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "heartbeatInterval": { "description": "Interval, in seconds, between reading the System_Status property of the Device object as a heartbeat. If 3 consecutive attempts fail all COV items will be marked with uncertain quality.", "default": 5, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Heartbeat Interval" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionLifetime": { "description": "Lifetime, in seconds, of COV subscriptions. Use 0 for indefinite. When non-zero COV subscriptions are renewed at a rate of 75% of the lifetime.", "default": 900, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Lifetime" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionRetryInterval": { "description": "Interval, in seconds, to attempt recreating COV subscriptions that previously failed to be created or renewed. Use 0 to have failed subscription items remain polled.", "default": 120, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Retry Interval" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "confirmedNotificationsEnabled": { "description": "If true COV subscriptions use confirmed notifications. If false COV subscriptions use unconfirmed notifications.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "Confirmed Notifications Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "discoveryTimeout": { "description": "Duration, in seconds, to wait for the remote device discovery process to complete.", "default": 5, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Discovery Timeout" }, "type": "number", "x-ignition-non-secret": false }, "writePriority": { "description": "The priority to use when writing to commandable properties.", "default": 8, "minimum": 1, "maximum": 16, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Write Priority" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsTcpDeviceType", "title": "com.inductiveautomation.FinsTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname or IP address of the target device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsUdpDeviceType", "title": "com.inductiveautomation.FinsUdpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "bindAddress": { "description": "The hostname or IP address of the Gateway.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Bind Address *" }, "type": "string", "x-ignition-non-secret": false }, "bindPort": { "description": "The port you wish to create a UDP connection on for the Gateway.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Bind Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port your Omron device is listening on.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "bindAddress", "bindPort", "remoteAddress", "remotePort", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.Micro800DeviceType", "title": "com.inductiveautomation.Micro800DeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "writePriorityRatio": { "type": "number", "x-ignition-non-secret": false }, "autoRebrowseEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "cipConnectionSize": { "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.MitsubishiTcpDeviceType", "title": "com.inductiveautomation.MitsubishiTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The IP Address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 1025, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "series": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": "iQR", "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Series" }, "type": "string", "enum": [ "iQR", "iQF", "Q", "L", "F" ], "x-ignition-non-secret": false }, "pcNumber": { "description": "The network module station number of an access target.", "default": 255, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "PC Number *" }, "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "description": "The network number of an access target.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Network Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationIoModuleNumber": { "description": "The start input/output number of a multi-drop connection source module, or the CPU module of a multiple CPU system.", "default": 1023, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module I/O Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationModuleStationNumber": { "description": "The station number of an access target module when accessing a multi-drop connection station.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module Station Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pcNumber", "networkNumber", "destinationIoModuleNumber", "destinationModuleStationNumber" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations. Increasing the max gap size will reduce the number requests but increase the amount of data requested.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request when an abundance of both types are queued up for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.ignition.siemens", "title": "com.inductiveautomation.ignition.siemens", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 102, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "Maximum amount of time to wait for a response in milliseconds.", "default": 30000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "deviceType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Device Type *" }, "type": "string", "enum": [ "S7_300", "S7_400", "S7_1200", "S7_1500" ], "x-ignition-non-secret": false }, "addressType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Address Type *" }, "type": "string", "enum": [ "ABSOLUTE", "SYMBOLIC" ], "x-ignition-non-secret": false }, "rack": { "default": 0, "minimum": 0, "maximum": 7, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Rack Number *" }, "type": "number", "x-ignition-non-secret": false }, "slot": { "default": 0, "minimum": 0, "maximum": 31, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "deviceType", "addressType", "rack", "slot" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "optimizeWrites": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Optimize Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "forceSecureConnection": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Force Secure Connection" }, "type": "boolean", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "ADVANCED SETTINGS", "label": "Password" } } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.omron.NjDriver", "title": "com.inductiveautomation.omron.NjDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectionSize": { "description": "The CIP connection size to use.", "default": 1994, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "dateTimeOffsetHours": { "description": "Offset in hours for Date/Time values.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Date/Time Offset *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in the backplane in which the CPU is located.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "The number of concurrently issued requests allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Concurrency *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "connectionSize", "dateTimeOffsetHours", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CompactLogix", "ControlLogix", "DairyDemoSimulator", "Dnp3Driver", "LogixDriver", "MicroLogix", "ModbusRtu", "ModbusRtuOverTcp", "ModbusTcp", "PLC5", "ProgrammableSimulatorDevice", "S71200", "S71500", "S7300", "S7400", "SLC", "SLCSimulator", "Simulator", "TCPDriver", "UDPDriver", "com.inductiveautomation.BacnetIpDeviceType", "com.inductiveautomation.FinsTcpDeviceType", "com.inductiveautomation.FinsUdpDeviceType", "com.inductiveautomation.Micro800DeviceType", "com.inductiveautomation.MitsubishiTcpDeviceType", "com.inductiveautomation.ignition.siemens", "com.inductiveautomation.omron.NjDriver" ] }, "browsePath": { "type": "string", "x-ignition-non-secret": false }, "rolePermissionMappings": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.opcua/device/CompactLogix", "title": "CompactLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ControlLogix", "title": "ControlLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/Dnp3Driver", "title": "Dnp3Driver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "sourceAddress": { "type": "number", "x-ignition-non-secret": false }, "destinationAddress": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "integrityPollInterval": { "type": "number", "x-ignition-non-secret": false }, "directOperateEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "unsolicitedMessagingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxMessageFragmentSize": { "type": "number", "x-ignition-non-secret": false }, "retries": { "type": "number", "x-ignition-non-secret": false }, "timeSynchronizationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "implementationLevel": { "type": "string", "enum": [ "UNKNOWN", "ONE", "TWO", "THREE", "FOUR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "defaults": { "type": "object", "properties": { "analogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenAnalogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "analogOutput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "counter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenCounter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "doubleBitBinaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryOutput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/LogixDriver", "title": "LogixDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "default": 44818, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Max amount of time to wait, in milliseconds, for responses from the processor.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "connectionPath": { "description": "Optionally, the connection path to the processor. If specified, the slot number setting is ignored, so be sure to terminate the path with backplane and slot number.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Connection Path" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "automaticRebrowseEnabled": { "description": "Monitor for tag additions and UDT changes and automatically initiate a re-browse when detected. If this is disabled tags will only be browsed when connecting and reconnecting.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Automatic Rebrowse" }, "type": "boolean", "x-ignition-non-secret": false }, "identityRequestFrequency": { "description": "Frequency, in milliseconds, that the request to read CIP Identity Object attributes occurs at.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Identity Request Frequency *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionSize": { "description": "The CIP connection size to use during Forward Open requests.", "default": 500, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "description": "Target timeout, in milliseconds, for CIP connections and RPI.", "default": 16000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in which the processor resides. If not in a rack, usually 0.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Controls both the max number of concurrent unconnected requests and the max number of concurrent connected requests (and therefore CIP connections) allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "identityRequestFrequency", "cipConnectionSize", "cipConnectionTimeout", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/MicroLogix", "title": "MicroLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtu", "title": "ModbusRtu", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "serialPort": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Serial Port *" }, "type": "string", "x-ignition-non-secret": false }, "bitRate": { "default": "BitRate_115200", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Bit Rate" }, "type": "string", "enum": [ "BitRate_110", "BitRate_150", "BitRate_300", "BitRate_600", "BitRate_1200", "BitRate_2400", "BitRate_4800", "BitRate_9600", "BitRate_19200", "BitRate_38400", "BitRate_57600", "BitRate_115200", "BitRate_230400", "BitRate_460800", "BitRate_921600" ], "x-ignition-non-secret": false }, "dataBits": { "default": "DataBits_8", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Data Bits" }, "type": "string", "enum": [ "DataBits_5", "DataBits_6", "DataBits_7", "DataBits_8" ], "x-ignition-non-secret": false }, "parity": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Parity" }, "type": "string", "enum": [ "Even", "Mark", "None", "Odd", "Space" ], "x-ignition-non-secret": false }, "stopBits": { "default": "StopBits_1", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Stop Bits" }, "type": "string", "enum": [ "StopBits_1", "StopBits_2" ], "x-ignition-non-secret": false }, "handshake": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Handshake" }, "type": "string", "enum": [ "None", "XonXoff", "CtsRts", "DsrDtr" ], "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "rs485Mode": { "description": "Enable if using RS-485 instead of RS-232.", "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "RS-485 Mode" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "serialPort", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtuOverTcp", "title": "ModbusRtuOverTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusTcp", "title": "ModbusTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/PLC5", "title": "PLC5", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ProgrammableSimulatorDevice", "title": "ProgrammableSimulatorDevice", "type": "object", "properties": { "repeat": { "type": "boolean", "x-ignition-non-secret": false }, "timeIntervalRate": { "type": "number", "x-ignition-non-secret": false }, "legacyMode": { "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71200", "title": "S71200", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71500", "title": "S71500", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7300", "title": "S7300", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7400", "title": "S7400", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/SLC", "title": "SLC", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/TCPDriver", "title": "TCPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false }, "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "connectTimeout": { "description": "The timeout, in milliseconds, when opening a socket connection to a remote host. Set to 0 to disable.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Connect Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "inactivityTimeout": { "description": "The number of milliseconds without receiving data from the source before a disconnect/reconnect is made. Set to 0 to disable.", "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Inactivity Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "ports", "address", "connectTimeout", "inactivityTimeout" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "write": { "type": "object", "properties": { "enabled": { "description": "Enable writeback capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "WRITING", "label": "Writeback Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "delimiter": { "description": "The delimiter expected by the device signaling the end of an incoming message.", "x-form": { "fieldType": "TEXT", "category": "WRITING", "label": "Writeback Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Duration, in milliseconds, to wait for writes to complete before returning.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "WRITING", "label": "Write Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "timeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/UDPDriver", "title": "UDPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "address", "ports" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "udp": { "type": "object", "properties": { "bufferSize": { "description": "The size of the message buffer in bytes.", "default": 4096, "x-form": { "fieldType": "NUMBER", "category": "UDP", "label": "Message Buffer Size" }, "type": "number", "x-ignition-non-secret": false }, "multicast": { "description": "Enable multicast capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "UDP", "label": "Multicast" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.BacnetIpDeviceType", "title": "com.inductiveautomation.BacnetIpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "localDevice": { "description": "The name of the local BACnet device instance that will be used when communicating with the remote device.", "x-form": { "fieldType": "REFERENCE", "category": "CONNECTIVITY", "label": "Local Device *", "referenceType": "com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig" }, "type": "string", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the remote device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port that the remote device is listening on.", "default": 47808, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteDeviceNumber": { "description": "The instance number/id of the remote device.", "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Device Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "localDevice", "remoteAddress", "remotePort", "remoteDeviceNumber" ], "x-ignition-non-secret": false }, "cov": { "type": "object", "properties": { "enabled": { "description": "If true a COV subscription is used for properties that support it. If false all properties are polled.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "COV Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "heartbeatInterval": { "description": "Interval, in seconds, between reading the System_Status property of the Device object as a heartbeat. If 3 consecutive attempts fail all COV items will be marked with uncertain quality.", "default": 5, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Heartbeat Interval" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionLifetime": { "description": "Lifetime, in seconds, of COV subscriptions. Use 0 for indefinite. When non-zero COV subscriptions are renewed at a rate of 75% of the lifetime.", "default": 900, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Lifetime" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionRetryInterval": { "description": "Interval, in seconds, to attempt recreating COV subscriptions that previously failed to be created or renewed. Use 0 to have failed subscription items remain polled.", "default": 120, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Retry Interval" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "confirmedNotificationsEnabled": { "description": "If true COV subscriptions use confirmed notifications. If false COV subscriptions use unconfirmed notifications.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "Confirmed Notifications Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "discoveryTimeout": { "description": "Duration, in seconds, to wait for the remote device discovery process to complete.", "default": 5, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Discovery Timeout" }, "type": "number", "x-ignition-non-secret": false }, "writePriority": { "description": "The priority to use when writing to commandable properties.", "default": 8, "minimum": 1, "maximum": 16, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Write Priority" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsTcpDeviceType", "title": "com.inductiveautomation.FinsTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname or IP address of the target device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsUdpDeviceType", "title": "com.inductiveautomation.FinsUdpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "bindAddress": { "description": "The hostname or IP address of the Gateway.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Bind Address *" }, "type": "string", "x-ignition-non-secret": false }, "bindPort": { "description": "The port you wish to create a UDP connection on for the Gateway.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Bind Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port your Omron device is listening on.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "bindAddress", "bindPort", "remoteAddress", "remotePort", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.Micro800DeviceType", "title": "com.inductiveautomation.Micro800DeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "writePriorityRatio": { "type": "number", "x-ignition-non-secret": false }, "autoRebrowseEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "cipConnectionSize": { "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.MitsubishiTcpDeviceType", "title": "com.inductiveautomation.MitsubishiTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The IP Address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 1025, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "series": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": "iQR", "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Series" }, "type": "string", "enum": [ "iQR", "iQF", "Q", "L", "F" ], "x-ignition-non-secret": false }, "pcNumber": { "description": "The network module station number of an access target.", "default": 255, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "PC Number *" }, "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "description": "The network number of an access target.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Network Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationIoModuleNumber": { "description": "The start input/output number of a multi-drop connection source module, or the CPU module of a multiple CPU system.", "default": 1023, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module I/O Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationModuleStationNumber": { "description": "The station number of an access target module when accessing a multi-drop connection station.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module Station Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pcNumber", "networkNumber", "destinationIoModuleNumber", "destinationModuleStationNumber" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations. Increasing the max gap size will reduce the number requests but increase the amount of data requested.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request when an abundance of both types are queued up for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.ignition.siemens", "title": "com.inductiveautomation.ignition.siemens", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 102, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "Maximum amount of time to wait for a response in milliseconds.", "default": 30000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "deviceType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Device Type *" }, "type": "string", "enum": [ "S7_300", "S7_400", "S7_1200", "S7_1500" ], "x-ignition-non-secret": false }, "addressType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Address Type *" }, "type": "string", "enum": [ "ABSOLUTE", "SYMBOLIC" ], "x-ignition-non-secret": false }, "rack": { "default": 0, "minimum": 0, "maximum": 7, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Rack Number *" }, "type": "number", "x-ignition-non-secret": false }, "slot": { "default": 0, "minimum": 0, "maximum": 31, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "deviceType", "addressType", "rack", "slot" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "optimizeWrites": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Optimize Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "forceSecureConnection": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Force Secure Connection" }, "type": "boolean", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "ADVANCED SETTINGS", "label": "Password" } } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.omron.NjDriver", "title": "com.inductiveautomation.omron.NjDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectionSize": { "description": "The CIP connection size to use.", "default": 1994, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "dateTimeOffsetHours": { "description": "Offset in hours for Date/Time values.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Date/Time Offset *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in the backplane in which the CPU is located.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "The number of concurrently issued requests allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Concurrency *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "connectionSize", "dateTimeOffsetHours", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.opcua/device/{name}/{signature}": { "delete": { "tags": [ "device" ], "summary": "Delete Devices", "description": "Delete a Devices resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.opcua/server-config": { "put": { "tags": [ "server" ], "summary": "Modify OPC UA Server Config", "description": "Modify one or more OPC UA Server Config resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "bindPort": { "type": "number", "x-ignition-non-secret": false }, "bindAddresses": { "type": "array", "items": { "type": "string", "bindAddresses": "string" }, "x-ignition-non-secret": false }, "endpointAddresses": { "type": "array", "items": { "type": "string", "endpointAddresses": "string" }, "x-ignition-non-secret": false }, "securityPolicies": { "type": "array", "items": { "type": "string", "securityPolicies": "string" }, "x-ignition-non-secret": false }, "messageSecurityModes": { "type": "array", "items": { "type": "string", "messageSecurityModes": "string" }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "anonymousAccessAllowed": { "type": "boolean", "x-ignition-non-secret": false }, "authenticationProfile": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "readOnlyWhenInactive": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "exposedTagsEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxSessionCount": { "type": "number", "x-ignition-non-secret": false }, "gdsPushEnabled": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "bindPort": { "type": "number", "x-ignition-non-secret": false }, "bindAddresses": { "type": "array", "items": { "type": "string", "bindAddresses": "string" }, "x-ignition-non-secret": false }, "endpointAddresses": { "type": "array", "items": { "type": "string", "endpointAddresses": "string" }, "x-ignition-non-secret": false }, "securityPolicies": { "type": "array", "items": { "type": "string", "securityPolicies": "string" }, "x-ignition-non-secret": false }, "messageSecurityModes": { "type": "array", "items": { "type": "string", "messageSecurityModes": "string" }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "anonymousAccessAllowed": { "type": "boolean", "x-ignition-non-secret": false }, "authenticationProfile": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "readOnlyWhenInactive": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "exposedTagsEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxSessionCount": { "type": "number", "x-ignition-non-secret": false }, "gdsPushEnabled": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "server" ], "summary": "Create OPC UA Server Config", "description": "Create the OPC UA Server Config resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "bindPort": { "type": "number", "x-ignition-non-secret": false }, "bindAddresses": { "type": "array", "items": { "type": "string", "bindAddresses": "string" }, "x-ignition-non-secret": false }, "endpointAddresses": { "type": "array", "items": { "type": "string", "endpointAddresses": "string" }, "x-ignition-non-secret": false }, "securityPolicies": { "type": "array", "items": { "type": "string", "securityPolicies": "string" }, "x-ignition-non-secret": false }, "messageSecurityModes": { "type": "array", "items": { "type": "string", "messageSecurityModes": "string" }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "anonymousAccessAllowed": { "type": "boolean", "x-ignition-non-secret": false }, "authenticationProfile": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "readOnlyWhenInactive": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "exposedTagsEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxSessionCount": { "type": "number", "x-ignition-non-secret": false }, "gdsPushEnabled": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "bindPort": { "type": "number", "x-ignition-non-secret": false }, "bindAddresses": { "type": "array", "items": { "type": "string", "bindAddresses": "string" }, "x-ignition-non-secret": false }, "endpointAddresses": { "type": "array", "items": { "type": "string", "endpointAddresses": "string" }, "x-ignition-non-secret": false }, "securityPolicies": { "type": "array", "items": { "type": "string", "securityPolicies": "string" }, "x-ignition-non-secret": false }, "messageSecurityModes": { "type": "array", "items": { "type": "string", "messageSecurityModes": "string" }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "anonymousAccessAllowed": { "type": "boolean", "x-ignition-non-secret": false }, "authenticationProfile": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "readOnlyWhenInactive": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "exposedTagsEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxSessionCount": { "type": "number", "x-ignition-non-secret": false }, "gdsPushEnabled": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.opcua/server-config/{signature}": { "delete": { "tags": [ "server" ], "summary": "Delete OPC UA Server Config", "description": "Delete the OPC UA Server Config resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.perspective/fonts": { "put": { "tags": [ "config-perspective-fonts" ], "summary": "Modify Fonts", "description": "Modify one or more Fonts resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object" }, "backupConfig": { "type": "object" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-perspective-fonts" ], "summary": "Create Fonts", "description": "Create a new Fonts resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object" }, "backupConfig": { "type": "object" } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.perspective/fonts/{name}/{signature}": { "delete": { "tags": [ "config-perspective-fonts" ], "summary": "Delete Fonts", "description": "Delete a Fonts resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.perspective/icons": { "put": { "tags": [ "config-perspective-icons" ], "summary": "Modify Icons", "description": "Modify one or more Icons resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "svgFileName": { "description": "The name of the icon library SVG File. This is a required data file which must be uploaded for this icon library to be used.", "examples": [ "library.svg" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "svgFileName" ] }, "backupConfig": { "type": "object", "properties": { "svgFileName": { "description": "The name of the icon library SVG File. This is a required data file which must be uploaded for this icon library to be used.", "examples": [ "library.svg" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "svgFileName" ] } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-perspective-icons" ], "summary": "Create Icons", "description": "Create a new Icons resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "svgFileName": { "description": "The name of the icon library SVG File. This is a required data file which must be uploaded for this icon library to be used.", "examples": [ "library.svg" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "svgFileName" ] }, "backupConfig": { "type": "object", "properties": { "svgFileName": { "description": "The name of the icon library SVG File. This is a required data file which must be uploaded for this icon library to be used.", "examples": [ "library.svg" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "svgFileName" ] } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.perspective/icons/{name}/{signature}": { "delete": { "tags": [ "config-perspective-icons" ], "summary": "Delete Icons", "description": "Delete a Icons resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.perspective/themes": { "put": { "tags": [ "config-perspective-themes" ], "summary": "Modify Themes", "description": "Modify one or more Themes resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "entrypoint": { "description": "The entrypoint file for the theme. this is typically a css file whose name matches the theme name.", "default": "index.css", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entrypoint" ] }, "backupConfig": { "type": "object", "properties": { "entrypoint": { "description": "The entrypoint file for the theme. this is typically a css file whose name matches the theme name.", "default": "index.css", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entrypoint" ] } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-perspective-themes" ], "summary": "Create Themes", "description": "Create a new Themes resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "entrypoint": { "description": "The entrypoint file for the theme. this is typically a css file whose name matches the theme name.", "default": "index.css", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entrypoint" ] }, "backupConfig": { "type": "object", "properties": { "entrypoint": { "description": "The entrypoint file for the theme. this is typically a css file whose name matches the theme name.", "default": "index.css", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entrypoint" ] } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.perspective/themes/{name}/{signature}": { "delete": { "tags": [ "config-perspective-themes" ], "summary": "Delete Themes", "description": "Delete a Themes resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.sfc/chart-settings": { "put": { "tags": [ "sfc-config" ], "summary": "Modify SFC Settings", "description": "Modify one or more SFC Settings resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "chartRecordingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "recordingsPerChart": { "type": "number", "x-ignition-non-secret": false }, "pruneAge": { "type": "number", "x-ignition-non-secret": false }, "pruneAgeUnits": { "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "chartRecordingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "recordingsPerChart": { "type": "number", "x-ignition-non-secret": false }, "pruneAge": { "type": "number", "x-ignition-non-secret": false }, "pruneAgeUnits": { "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "sfc-config" ], "summary": "Create SFC Settings", "description": "Create the SFC Settings resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "chartRecordingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "recordingsPerChart": { "type": "number", "x-ignition-non-secret": false }, "pruneAge": { "type": "number", "x-ignition-non-secret": false }, "pruneAgeUnits": { "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "chartRecordingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "recordingsPerChart": { "type": "number", "x-ignition-non-secret": false }, "pruneAge": { "type": "number", "x-ignition-non-secret": false }, "pruneAgeUnits": { "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/com.inductiveautomation.sfc/chart-settings/{signature}": { "delete": { "tags": [ "sfc-config" ], "summary": "Delete SFC Settings", "description": "Delete the SFC Settings resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/copy": { "post": { "tags": [ "config-management" ], "summary": "Copy a Resource", "description": "Copies a resource from one collection to another, or to a resource with a new name", "parameters": [ { "name": "resourceType", "in": "query", "description": "The resource type to copy, in the format 'moduleId/typeId'", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "ignition/database-connection" } }, { "name": "signature", "in": "query", "description": "The signature of the resource to copy", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "fromName", "in": "query", "description": "The name of the resource to copy. (required for non-singleton types)", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "toName", "in": "query", "description": "The name of the copied resource. If omitted, the name will be the same as the original resource", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "fromCollection", "in": "query", "description": "The resource collection to copy from. If omitted, will automatically use the active definition", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "toCollection", "in": "query", "description": "The resource collection to copy to. If omitted, will use the same collection as the source resource", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The request is invalid" }, "500": { "description": "There was an error creating the new resource", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "404": { "description": "The resource to copy was not found" }, "200": { "description": "The operation executed successfully", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "There was a conflict at the new name/collection.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/datafile/com.inductiveautomation.opcua/device/{name}/{filename}": { "get": { "tags": [ "device" ], "summary": "Get Devices Data File", "description": "Retrieve a data file from a specific Devices resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the file from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "400": { "description": "Missing 'name' or 'filename' parameter" }, "404": { "description": "Resource or file not found" }, "200": { "description": "Success, file found. Returns raw contents of the file, with Content-Type set to the implied type." } }, "deprecated": false }, "put": { "tags": [ "device" ], "summary": "Update Devices Data File", "description": "Update (overwrite) a data file for a named Devices resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "rename", "in": "query", "description": "An optional new name for the file", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "The new contents of the file", "required": true, "content": { "*/*": {} } }, "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file updated", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "delete": { "tags": [ "device" ], "summary": "Delete Devices Data File", "description": "Delete a data file for a named Devices resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file deleted.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/datafile/com.inductiveautomation.perspective/fonts/{name}/{filename}": { "get": { "tags": [ "config-perspective-fonts" ], "summary": "Get Fonts Data File", "description": "Retrieve a data file from a specific Fonts resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the file from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "400": { "description": "Missing 'name' or 'filename' parameter" }, "404": { "description": "Resource or file not found" }, "200": { "description": "Success, file found. Returns raw contents of the file, with Content-Type set to the implied type." } }, "deprecated": false }, "put": { "tags": [ "config-perspective-fonts" ], "summary": "Update Fonts Data File", "description": "Update (overwrite) a data file for a named Fonts resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "rename", "in": "query", "description": "An optional new name for the file", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "The new contents of the file", "required": true, "content": { "*/*": {} } }, "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file updated", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "delete": { "tags": [ "config-perspective-fonts" ], "summary": "Delete Fonts Data File", "description": "Delete a data file for a named Fonts resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file deleted.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/datafile/com.inductiveautomation.perspective/icons/{name}/{filename}": { "get": { "tags": [ "config-perspective-icons" ], "summary": "Get Icons Data File", "description": "Retrieve a data file from a specific Icons resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the file from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "400": { "description": "Missing 'name' or 'filename' parameter" }, "404": { "description": "Resource or file not found" }, "200": { "description": "Success, file found. Returns raw contents of the file, with Content-Type set to the implied type." } }, "deprecated": false }, "put": { "tags": [ "config-perspective-icons" ], "summary": "Update Icons Data File", "description": "Update (overwrite) a data file for a named Icons resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "rename", "in": "query", "description": "An optional new name for the file", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "The new contents of the file", "required": true, "content": { "*/*": {} } }, "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file updated", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "delete": { "tags": [ "config-perspective-icons" ], "summary": "Delete Icons Data File", "description": "Delete a data file for a named Icons resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file deleted.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/datafile/com.inductiveautomation.perspective/themes/{name}/{filename}": { "get": { "tags": [ "config-perspective-themes" ], "summary": "Get Themes Data File", "description": "Retrieve a data file from a specific Themes resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the file from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "400": { "description": "Missing 'name' or 'filename' parameter" }, "404": { "description": "Resource or file not found" }, "200": { "description": "Success, file found. Returns raw contents of the file, with Content-Type set to the implied type." } }, "deprecated": false }, "put": { "tags": [ "config-perspective-themes" ], "summary": "Update Themes Data File", "description": "Update (overwrite) a data file for a named Themes resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "rename", "in": "query", "description": "An optional new name for the file", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "The new contents of the file", "required": true, "content": { "*/*": {} } }, "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file updated", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "delete": { "tags": [ "config-perspective-themes" ], "summary": "Delete Themes Data File", "description": "Delete a data file for a named Themes resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file deleted.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/datafile/ignition/database-driver/{name}/{filename}": { "get": { "tags": [ "config-databases" ], "summary": "Get JDBC Driver Data File", "description": "Retrieve a data file from a specific JDBC Driver resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the file from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "400": { "description": "Missing 'name' or 'filename' parameter" }, "404": { "description": "Resource or file not found" }, "200": { "description": "Success, file found. Returns raw contents of the file, with Content-Type set to the implied type." } }, "deprecated": false }, "put": { "tags": [ "config-databases" ], "summary": "Update JDBC Driver Data File", "description": "Update (overwrite) a data file for a named JDBC Driver resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "rename", "in": "query", "description": "An optional new name for the file", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "The new contents of the file", "required": true, "content": { "*/*": {} } }, "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file updated", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "delete": { "tags": [ "config-databases" ], "summary": "Delete JDBC Driver Data File", "description": "Delete a data file for a named JDBC Driver resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file deleted.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/datafile/ignition/service-connector/{name}/{filename}": { "get": { "tags": [ "service-connectors" ], "summary": "Get Service Connectors Data File", "description": "Retrieve a data file from a specific Service Connectors resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the file from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "400": { "description": "Missing 'name' or 'filename' parameter" }, "404": { "description": "Resource or file not found" }, "200": { "description": "Success, file found. Returns raw contents of the file, with Content-Type set to the implied type." } }, "deprecated": false }, "put": { "tags": [ "service-connectors" ], "summary": "Update Service Connectors Data File", "description": "Update (overwrite) a data file for a named Service Connectors resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "rename", "in": "query", "description": "An optional new name for the file", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "The new contents of the file", "required": true, "content": { "*/*": {} } }, "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file updated", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "delete": { "tags": [ "service-connectors" ], "summary": "Delete Service Connectors Data File", "description": "Delete a data file for a named Service Connectors resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to update. If omitted, the active definition's collection will be used.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'name', 'filename', or 'signature' parameter" }, "404": { "description": "Resource or file not found" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file deleted.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/datafile/ignition/translations/{filename}": { "get": { "tags": [ "config-translations" ], "summary": "Get Translations Data File", "description": "Retrieve a data file from the singleton resource", "parameters": [ { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the file from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "200": { "description": "Success, file found" } }, "deprecated": false }, "put": { "tags": [ "config-translations" ], "summary": "Update Translations Data File", "description": "Update (overwrite) a data file in the singleton resource", "parameters": [ { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to modify the file in.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "rename", "in": "query", "description": "An optional new name for the file", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "The new contents of the file", "required": true, "content": { "*/*": {} } }, "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file updated.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "delete": { "tags": [ "config-translations" ], "summary": "Delete Translations Data File", "description": "Deletes a data file in the singleton resource", "parameters": [ { "name": "filename", "in": "path", "description": "The name of the data file", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to modify the file in.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } }, { "name": "signature", "in": "query", "description": "The current signature of the resource.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "200": { "description": "Success, file deleted.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.alarm-notification/alarm-notification-profile": { "post": { "tags": [ "alarm-notification-profile" ], "summary": "Delete Alarm Notification Profiles (multiple)", "description": "Delete multiple Alarm Notification Profiles resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.eam/agent-group": { "post": { "tags": [ "agent-group" ], "summary": "Delete Agent Groups (multiple)", "description": "Delete multiple Agent Groups resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.eam/agent-management": { "post": { "tags": [ "agent-management" ], "summary": "Delete Agent Management (multiple)", "description": "Delete multiple Agent Management resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.eam/eam-tasks": { "post": { "tags": [ "eam-tasks" ], "summary": "Delete EAM Agent Task (multiple)", "description": "Delete multiple EAM Agent Task resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.eam/hw-license-management": { "post": { "tags": [ "license-management" ], "summary": "Delete Hardware License (multiple)", "description": "Delete multiple Hardware License resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.eam/leased-license-management": { "post": { "tags": [ "license-management" ], "summary": "Delete Leased License (multiple)", "description": "Delete multiple Leased License resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.eam/module-certificates": { "post": { "tags": [ "module-certificate" ], "summary": "Delete Module Certificate (multiple)", "description": "Delete multiple Module Certificate resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.eam/module-eulas": { "post": { "tags": [ "module-eula" ], "summary": "Delete Module EULA (multiple)", "description": "Delete multiple Module EULA resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.eam/remote-upgrade": { "post": { "tags": [ "remote-upgrade" ], "summary": "Delete Remote Upgrade (multiple)", "description": "Delete multiple Remote Upgrade resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.historian/historian-provider": { "post": { "tags": [ "historian-config" ], "summary": "Delete Historian (multiple)", "description": "Delete multiple Historian resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig": { "post": { "tags": [ "local-devices" ], "summary": "Delete Local Devices (multiple)", "description": "Delete multiple Local Devices resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.opcua/device": { "post": { "tags": [ "device" ], "summary": "Delete Devices (multiple)", "description": "Delete multiple Devices resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.perspective/fonts": { "post": { "tags": [ "config-perspective-fonts" ], "summary": "Delete Fonts (multiple)", "description": "Delete multiple Fonts resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.perspective/icons": { "post": { "tags": [ "config-perspective-icons" ], "summary": "Delete Icons (multiple)", "description": "Delete multiple Icons resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/com.inductiveautomation.perspective/themes": { "post": { "tags": [ "config-perspective-themes" ], "summary": "Delete Themes (multiple)", "description": "Delete multiple Themes resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/alarm-journal": { "post": { "tags": [ "alarm-journal-resources" ], "summary": "Delete Alarm Journal Settings (multiple)", "description": "Delete multiple Alarm Journal Settings resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/api-token": { "post": { "tags": [ "config-api-token" ], "summary": "Delete API Token (multiple)", "description": "Delete multiple API Token resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/audit-profile": { "post": { "tags": [ "config-audit-profiles" ], "summary": "Delete Audit Profiles (multiple)", "description": "Delete multiple Audit Profiles resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/database-connection": { "post": { "tags": [ "config-databases" ], "summary": "Delete Database Connection (multiple)", "description": "Delete multiple Database Connection resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/database-driver": { "post": { "tags": [ "config-databases" ], "summary": "Delete JDBC Driver (multiple)", "description": "Delete multiple JDBC Driver resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/database-translator": { "post": { "tags": [ "config-databases" ], "summary": "Delete Database Translator (multiple)", "description": "Delete multiple Database Translator resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/email-profile": { "post": { "tags": [ "config-email-profile" ], "summary": "Delete Email Profile Settings (multiple)", "description": "Delete multiple Email Profile Settings resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/gateway-network-incoming": { "post": { "tags": [ "config-gateway-network" ], "summary": "Delete Incoming Connection Settings (multiple)", "description": "Delete multiple Incoming Connection Settings resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/gateway-network-outgoing": { "post": { "tags": [ "config-gateway-network" ], "summary": "Delete Outgoing Connection Settings (multiple)", "description": "Delete multiple Outgoing Connection Settings resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/holiday": { "post": { "tags": [ "config-alarm" ], "summary": "Delete Holiday (multiple)", "description": "Delete multiple Holiday resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/identity-provider": { "post": { "tags": [ "config-identity-provider" ], "summary": "Delete Identity Provider (multiple)", "description": "Delete multiple Identity Provider resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/keyboard_layout": { "post": { "tags": [ "config-keyboard-layouts" ], "summary": "Delete Keyboard Layouts (multiple)", "description": "Delete multiple Keyboard Layouts resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/metrics-dashboard": { "post": { "tags": [ "config-metrics-dashboard" ], "summary": "Delete Metrics Dashboard (multiple)", "description": "Delete multiple Metrics Dashboard resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/oauth2-client": { "post": { "tags": [ "config-oauth2-client" ], "summary": "Delete OAuth2 Client (multiple)", "description": "Delete multiple OAuth2 Client resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/opc-connection": { "post": { "tags": [ "opc-connection" ], "summary": "Delete OPC Connections (multiple)", "description": "Delete multiple OPC Connections resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/roster-config": { "post": { "tags": [ "roster-config" ], "summary": "Delete Rosters (multiple)", "description": "Delete multiple Rosters resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/schedule": { "post": { "tags": [ "config-alarm" ], "summary": "Delete Schedule (multiple)", "description": "Delete multiple Schedule resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/secret-provider": { "post": { "tags": [ "config-secret-provider" ], "summary": "Delete Secret Provider (multiple)", "description": "Delete multiple Secret Provider resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/security-zone": { "post": { "tags": [ "config-security-zone" ], "summary": "Delete Security Zones (multiple)", "description": "Delete multiple Security Zones resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/service-connector": { "post": { "tags": [ "service-connectors" ], "summary": "Delete Service Connectors (multiple)", "description": "Delete multiple Service Connectors resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/store-and-forward-engine": { "post": { "tags": [ "config-store-forward" ], "summary": "Delete Store and Forward Engine (multiple)", "description": "Delete multiple Store and Forward Engine resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/tag-provider": { "post": { "tags": [ "config-tag-provider" ], "summary": "Delete Tag Providers (multiple)", "description": "Delete multiple Tag Providers resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/delete/ignition/user-source": { "post": { "tags": [ "config-user-source" ], "summary": "Delete User Sources (multiple)", "description": "Delete multiple User Sources resources by name", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "requestBody": { "description": "List of resources to delete", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "collection": { "type": "string", "description": "The configuration collection to delete the resource from (optional)" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "404": { "description": "Resource not found" }, "200": { "description": "Success, resources deleted, or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.alarm-notification/alarm-notification-profile/{name}": { "get": { "tags": [ "alarm-notification-profile" ], "summary": "Get Alarm Notification Profiles Config", "description": "Retrieve configuration details about a specific Alarm Notification Profiles resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "AirlinkSms", "EmailNotificationProfileType", "OneWayNotificationProfileType", "RemoteNotificationProfileType" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/AirlinkSms", "title": "AirlinkSms", "type": "object", "properties": { "hostAddress": { "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "sendPort": { "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "receivePort": { "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupHostAddress": { "description": "Host Address to use if on a Backup Gateway", "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Backup Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "backupSendPort": { "description": "Send Port to use if on a Backup Gateway", "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupReceivePort": { "description": "Receive Port to use if on a Backup Gateway", "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "numericOnlyAckCode": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Numeric Only Ack Code" }, "type": "boolean", "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as SMS messages and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostAddress", "sendPort", "receivePort", "backupHostAddress", "backupSendPort", "backupReceivePort" ] }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/EmailNotificationProfileType", "title": "EmailNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "useSmtpProfile": { "description": "If selected, this notification profile will use one of the Gateway defined email profiles. Otherwise, it will use the settings defined here.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Use SMTP Profile" }, "type": "boolean", "x-ignition-non-secret": false }, "emailProfile": { "description": "If Use Email Profile is selected, alarm notifications will be emailed using this profile.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "hostname": { "description": "Hostname of the SMTP server to send email through. Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on. Only used when Use SMTP Profile is false.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "EMAIL SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "sslEnabled": { "description": "Connect using SSL/TLS. Only used when Use SMTP Profile is false.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Only used when Use SMTP Profile is false.", "x-form": { "fieldType": "SECRET", "category": "EMAIL SETTINGS", "label": "Password" } } }, "required": [ "port" ], "x-ignition-non-secret": false }, "twoWay": { "description": "Two-way Settings", "type": "object", "properties": { "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "gatewayAddress": { "description": "Address and port this Gateway is reachable at. Will be used in notification emails. Example: 1.2.3.4:8088", "default": "null", "x-form": { "fieldType": "TEXT", "category": "TWO-WAY SETTINGS", "label": "Gateway" }, "type": "string", "x-ignition-non-secret": false }, "httpsLinkEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Send HTTPS Link" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "twoWayPop3": { "description": "Pop3 Two-way Settings", "type": "object", "properties": { "pop3TwoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Pop3 Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3SslEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3DeleteMessage": { "description": "Delete the message from the inbox after acknowledging the alarm.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Delete on Acknowledge" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3Hostname": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "pop3Port": { "default": 110, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "pop3Username": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "pop3Password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "POP3 TWO-WAY SETTINGS", "label": "Password" } }, "pop3CustomMessage": { "description": "A message included in the notification email.", "default": "null", "x-form": { "fieldType": "TEXTAREA", "category": "POP3 TWO-WAY SETTINGS", "label": "Custom Message" }, "type": "string", "x-ignition-non-secret": false }, "pop3PollingInterval": { "description": "The interval to check the POP3 server, in milliseconds.", "default": 60000, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Polling Interval *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pop3Port", "pop3PollingInterval" ], "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as emails and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Enable use of the STARTTLS command, allowing the connection to be upgraded to an SSL or TLS connection if supported by the server. This is not necessary for connections that are already SSL/TLS. Ignored when Use SMTP Profile is checked.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "STARTTLS Enabled" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "smtpTimeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/OneWayNotificationProfileType", "title": "OneWayNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "emailProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "roster": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "On-Call Roster", "referenceType": "ignition/roster-config" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "criteria": { "description": "Alarm Criteria", "type": "object", "properties": { "minPriority": { "default": "Low", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "maxPriority": { "default": "Critical", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Maximum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "fromAddress": { "description": "An optional address to use for the From field. If empty, the email session username will be used.", "default": "null", "pattern": "EMAIL", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "From Address" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/RemoteNotificationProfileType", "title": "RemoteNotificationProfileType", "type": "object", "properties": { "remoteInfo": { "description": "Remote Gateway", "type": "object", "properties": { "serverName": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Notification Profile", "referenceType": "com.inductiveautomation.alarm-notification/alarm-notification-profile" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "retryDelayMillis": { "description": "Delay, in milliseconds, between retries of a failed attempt to synchronize with the remote profile.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Retry Delay (Milliseconds) *" }, "type": "number", "x-ignition-non-secret": false }, "maxEvaluationQueueSize": { "description": "Maximum size of the transition evaluation queue before the oldest entries are start getting discarded. This queue is only expected to fill while the connection to the remote is not available.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Queued Alarm Transitions *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "retryDelayMillis", "maxEvaluationQueueSize" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "AirlinkSms", "EmailNotificationProfileType", "OneWayNotificationProfileType", "RemoteNotificationProfileType" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/AirlinkSms", "title": "AirlinkSms", "type": "object", "properties": { "hostAddress": { "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "sendPort": { "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "receivePort": { "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupHostAddress": { "description": "Host Address to use if on a Backup Gateway", "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Backup Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "backupSendPort": { "description": "Send Port to use if on a Backup Gateway", "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupReceivePort": { "description": "Receive Port to use if on a Backup Gateway", "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "numericOnlyAckCode": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Numeric Only Ack Code" }, "type": "boolean", "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as SMS messages and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostAddress", "sendPort", "receivePort", "backupHostAddress", "backupSendPort", "backupReceivePort" ] }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/EmailNotificationProfileType", "title": "EmailNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "useSmtpProfile": { "description": "If selected, this notification profile will use one of the Gateway defined email profiles. Otherwise, it will use the settings defined here.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Use SMTP Profile" }, "type": "boolean", "x-ignition-non-secret": false }, "emailProfile": { "description": "If Use Email Profile is selected, alarm notifications will be emailed using this profile.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "hostname": { "description": "Hostname of the SMTP server to send email through. Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on. Only used when Use SMTP Profile is false.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "EMAIL SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "sslEnabled": { "description": "Connect using SSL/TLS. Only used when Use SMTP Profile is false.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Only used when Use SMTP Profile is false.", "x-form": { "fieldType": "SECRET", "category": "EMAIL SETTINGS", "label": "Password" } } }, "required": [ "port" ], "x-ignition-non-secret": false }, "twoWay": { "description": "Two-way Settings", "type": "object", "properties": { "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "gatewayAddress": { "description": "Address and port this Gateway is reachable at. Will be used in notification emails. Example: 1.2.3.4:8088", "default": "null", "x-form": { "fieldType": "TEXT", "category": "TWO-WAY SETTINGS", "label": "Gateway" }, "type": "string", "x-ignition-non-secret": false }, "httpsLinkEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Send HTTPS Link" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "twoWayPop3": { "description": "Pop3 Two-way Settings", "type": "object", "properties": { "pop3TwoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Pop3 Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3SslEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3DeleteMessage": { "description": "Delete the message from the inbox after acknowledging the alarm.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Delete on Acknowledge" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3Hostname": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "pop3Port": { "default": 110, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "pop3Username": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "pop3Password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "POP3 TWO-WAY SETTINGS", "label": "Password" } }, "pop3CustomMessage": { "description": "A message included in the notification email.", "default": "null", "x-form": { "fieldType": "TEXTAREA", "category": "POP3 TWO-WAY SETTINGS", "label": "Custom Message" }, "type": "string", "x-ignition-non-secret": false }, "pop3PollingInterval": { "description": "The interval to check the POP3 server, in milliseconds.", "default": 60000, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Polling Interval *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pop3Port", "pop3PollingInterval" ], "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as emails and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Enable use of the STARTTLS command, allowing the connection to be upgraded to an SSL or TLS connection if supported by the server. This is not necessary for connections that are already SSL/TLS. Ignored when Use SMTP Profile is checked.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "STARTTLS Enabled" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "smtpTimeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/OneWayNotificationProfileType", "title": "OneWayNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "emailProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "roster": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "On-Call Roster", "referenceType": "ignition/roster-config" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "criteria": { "description": "Alarm Criteria", "type": "object", "properties": { "minPriority": { "default": "Low", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "maxPriority": { "default": "Critical", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Maximum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "fromAddress": { "description": "An optional address to use for the From field. If empty, the email session username will be used.", "default": "null", "pattern": "EMAIL", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "From Address" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/RemoteNotificationProfileType", "title": "RemoteNotificationProfileType", "type": "object", "properties": { "remoteInfo": { "description": "Remote Gateway", "type": "object", "properties": { "serverName": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Notification Profile", "referenceType": "com.inductiveautomation.alarm-notification/alarm-notification-profile" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "retryDelayMillis": { "description": "Delay, in milliseconds, between retries of a failed attempt to synchronize with the remote profile.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Retry Delay (Milliseconds) *" }, "type": "number", "x-ignition-non-secret": false }, "maxEvaluationQueueSize": { "description": "Maximum size of the transition evaluation queue before the oldest entries are start getting discarded. This queue is only expected to fill while the connection to the remote is not available.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Queued Alarm Transitions *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "retryDelayMillis", "maxEvaluationQueueSize" ], "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.eam/agent-group/{name}": { "get": { "tags": [ "agent-group" ], "summary": "Get Agent Groups Config", "description": "Retrieve configuration details about a specific Agent Groups resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object" }, "backupConfig": { "type": "object" }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.eam/agent-management/{name}": { "get": { "tags": [ "agent-management" ], "summary": "Get Agent Management Config", "description": "Retrieve configuration details about a specific Agent Management resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "serverId": { "description": "Agent ServerId in encoded form (such as '_0:0:agent')", "type": "string", "x-ignition-non-secret": false }, "groupName": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "serverId": { "description": "Agent ServerId in encoded form (such as '_0:0:agent')", "type": "string", "x-ignition-non-secret": false }, "groupName": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.eam/eam-tasks/{name}": { "get": { "tags": [ "eam-tasks" ], "summary": "Get EAM Agent Task Config", "description": "Retrieve configuration details about a specific EAM Agent Task resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "eam_activateLicense", "eam_backup", "eam_installModules", "eam_remoteUpgrade", "eam_restart", "eam_restoreBackup", "eam_sendProject", "eam_sendResource", "eam_sendTags", "eam_unactivateLicense", "eam_updateLicense" ] }, "isSuspended": { "type": "boolean", "x-ignition-non-secret": false }, "scheduleMode": { "type": "string", "enum": [ "Immediate", "AtTime", "AtDelay", "Scheduled", "OnDemand" ], "x-ignition-non-secret": false }, "scheduleDetails": { "type": "string", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.eam/eam-tasks/eam_activateLicense", "title": "eam_activateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_backup", "title": "eam_backup", "type": "object", "properties": { "concurrentBackups": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "forceBackups": { "description": "If true, a gateway backup will be always generated for the agent, even if the agent gateway configuration has not changed since the last backup was taken.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_installModules", "title": "eam_installModules", "type": "object", "properties": { "moduleInfo": { "description": "User-readable meta information about the modules that will be installed when the task runs.", "type": "object", "properties": { "name": { "description": "The module's name", "type": "string", "x-ignition-non-secret": false }, "version": { "description": "The module's version", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "restartAgent": { "description": "If true, the agent gateway will be restarted after the modules are installed.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_remoteUpgrade", "title": "eam_remoteUpgrade", "type": "object", "properties": { "upgradeZipTransferType": { "description": "Set to 'Send over Gateway Network' to stream the upgrade zip to the agent. Set to 'Alternate URL' to force the agent to download the upgrade zip on its own from a provided URL.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restart", "title": "eam_restart", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restoreBackup", "title": "eam_restoreBackup", "type": "object", "properties": { "uploadedGwbkpath": { "description": "A path to the temporary .gwbk file on disk. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "archivedGwbkpath": { "description": "A path to a .gwbk file in the EAM archive. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "restoredisabled": { "description": "If true, all agent configuration will be disabled after the restore operation.", "type": "boolean", "x-ignition-non-secret": false }, "installModules": { "description": "If true, any missing modules will be installed during the restore operation. Missing modules are modules that were installed on the agent when the backup was taken, but are not installed now.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendProject", "title": "eam_sendProject", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited projects will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway from where the project will be retrieved.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project that will be retrieved.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendResource", "title": "eam_sendResource", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited resources will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "targetProject": { "description": "The selected resources will be sent to this project on the specified agents.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendTags", "title": "eam_sendTags", "type": "object", "properties": { "targetTagProvider": { "description": "The tag provider that will receive the tags.", "type": "string", "x-ignition-non-secret": false }, "tagPaths": { "description": "A comma-separated list of tag paths.", "type": "string", "x-ignition-non-secret": false }, "collisionPolicy": { "description": "The tag collision policy. Valid values include 'Abort', 'Overwrite', 'Rename', 'Ignore', and 'MergeOverwrite'.", "type": "string", "x-ignition-non-secret": false }, "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_unactivateLicense", "title": "eam_unactivateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_updateLicense", "title": "eam_updateLicense", "type": "object" } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "eam_activateLicense", "eam_backup", "eam_installModules", "eam_remoteUpgrade", "eam_restart", "eam_restoreBackup", "eam_sendProject", "eam_sendResource", "eam_sendTags", "eam_unactivateLicense", "eam_updateLicense" ] }, "isSuspended": { "type": "boolean", "x-ignition-non-secret": false }, "scheduleMode": { "type": "string", "enum": [ "Immediate", "AtTime", "AtDelay", "Scheduled", "OnDemand" ], "x-ignition-non-secret": false }, "scheduleDetails": { "type": "string", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.eam/eam-tasks/eam_activateLicense", "title": "eam_activateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_backup", "title": "eam_backup", "type": "object", "properties": { "concurrentBackups": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "forceBackups": { "description": "If true, a gateway backup will be always generated for the agent, even if the agent gateway configuration has not changed since the last backup was taken.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_installModules", "title": "eam_installModules", "type": "object", "properties": { "moduleInfo": { "description": "User-readable meta information about the modules that will be installed when the task runs.", "type": "object", "properties": { "name": { "description": "The module's name", "type": "string", "x-ignition-non-secret": false }, "version": { "description": "The module's version", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "restartAgent": { "description": "If true, the agent gateway will be restarted after the modules are installed.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_remoteUpgrade", "title": "eam_remoteUpgrade", "type": "object", "properties": { "upgradeZipTransferType": { "description": "Set to 'Send over Gateway Network' to stream the upgrade zip to the agent. Set to 'Alternate URL' to force the agent to download the upgrade zip on its own from a provided URL.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restart", "title": "eam_restart", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restoreBackup", "title": "eam_restoreBackup", "type": "object", "properties": { "uploadedGwbkpath": { "description": "A path to the temporary .gwbk file on disk. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "archivedGwbkpath": { "description": "A path to a .gwbk file in the EAM archive. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "restoredisabled": { "description": "If true, all agent configuration will be disabled after the restore operation.", "type": "boolean", "x-ignition-non-secret": false }, "installModules": { "description": "If true, any missing modules will be installed during the restore operation. Missing modules are modules that were installed on the agent when the backup was taken, but are not installed now.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendProject", "title": "eam_sendProject", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited projects will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway from where the project will be retrieved.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project that will be retrieved.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendResource", "title": "eam_sendResource", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited resources will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "targetProject": { "description": "The selected resources will be sent to this project on the specified agents.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendTags", "title": "eam_sendTags", "type": "object", "properties": { "targetTagProvider": { "description": "The tag provider that will receive the tags.", "type": "string", "x-ignition-non-secret": false }, "tagPaths": { "description": "A comma-separated list of tag paths.", "type": "string", "x-ignition-non-secret": false }, "collisionPolicy": { "description": "The tag collision policy. Valid values include 'Abort', 'Overwrite', 'Rename', 'Ignore', and 'MergeOverwrite'.", "type": "string", "x-ignition-non-secret": false }, "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_unactivateLicense", "title": "eam_unactivateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_updateLicense", "title": "eam_updateLicense", "type": "object" } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "scheduledTaskState": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.eam/hw-license-management/{name}": { "get": { "tags": [ "license-management" ], "summary": "Get Hardware License Config", "description": "Retrieve configuration details about a specific Hardware License resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "licenseKey": { "description": "The 6-digit hardware license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "licenseKey": { "description": "The 6-digit hardware license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.eam/leased-license-management/{name}": { "get": { "tags": [ "license-management" ], "summary": "Get Leased License Config", "description": "Retrieve configuration details about a specific Leased License resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "licenseKey": { "description": "The 8-digit leased license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "licenseKey": { "description": "The 8-digit leased license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.eam/module-certificates/{name}": { "get": { "tags": [ "module-certificate" ], "summary": "Get Module Certificate Config", "description": "Retrieve configuration details about a specific Module Certificate resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "thumbprint": { "description": "Bytes that contain the thumbprint of the module's certificate.", "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "subjectName": { "description": "The subject name of the module's certificate.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "thumbprint": { "description": "Bytes that contain the thumbprint of the module's certificate.", "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "subjectName": { "description": "The subject name of the module's certificate.", "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.eam/module-eulas/{name}": { "get": { "tags": [ "module-eula" ], "summary": "Get Module EULA Config", "description": "Retrieve configuration details about a specific Module EULA resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "moduleId": { "description": "The full module id", "type": "string", "x-ignition-non-secret": false }, "crc": { "description": "Calculated CRC of the module's EULA file", "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "moduleId": { "description": "The full module id", "type": "string", "x-ignition-non-secret": false }, "crc": { "description": "Calculated CRC of the module's EULA file", "type": "number", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.eam/remote-upgrade/{name}": { "get": { "tags": [ "remote-upgrade" ], "summary": "Get Remote Upgrade Config", "description": "Retrieve configuration details about a specific Remote Upgrade resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "serverId": { "description": "ServerId in encoded form (such as '_0:0:agent') of the EAM agent.", "type": "string", "x-ignition-non-secret": false }, "role": { "description": "The redundant role of the EAM agent, such as 'Master', or 'Backup'. Will be blank for Independent agents.", "type": "string", "x-ignition-non-secret": false }, "statusTimestamp": { "description": "Value holds the timestamp of the most recent upgrade status message.", "type": "number", "x-ignition-non-secret": false }, "agentGroup": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false }, "upgradeStatus": { "description": "The current status of the remote upgrade on the EAM agent.", "type": "string", "enum": [ "Status is unknown", "Preparing upgrade zip file", "\u00bfeam.tasks.remoteUpgrade.status.PrepFail?", "Waiting to send upgrade zip", "Waiting to trigger agent downloads", "Exception thrown within task", "Error on agent", "Agent was not found", "Agent is not connected", "Sending zip to agent", "Error sending zip", "Agent failed to download upgrade zip", "Waiting for backup node upgrade", "Ready to upgrade", "Tranfer node responsibility", "Sending upgrade request", "Upgrade in progress", "Agent needs commissioning", "Upgrade success", "Upgrade failed", "Trial expired" ], "x-ignition-non-secret": false }, "statusMsg": { "description": "If available, this will report details on the current status of the remote upgrade.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "serverId": { "description": "ServerId in encoded form (such as '_0:0:agent') of the EAM agent.", "type": "string", "x-ignition-non-secret": false }, "role": { "description": "The redundant role of the EAM agent, such as 'Master', or 'Backup'. Will be blank for Independent agents.", "type": "string", "x-ignition-non-secret": false }, "statusTimestamp": { "description": "Value holds the timestamp of the most recent upgrade status message.", "type": "number", "x-ignition-non-secret": false }, "agentGroup": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false }, "upgradeStatus": { "description": "The current status of the remote upgrade on the EAM agent.", "type": "string", "enum": [ "Status is unknown", "Preparing upgrade zip file", "\u00bfeam.tasks.remoteUpgrade.status.PrepFail?", "Waiting to send upgrade zip", "Waiting to trigger agent downloads", "Exception thrown within task", "Error on agent", "Agent was not found", "Agent is not connected", "Sending zip to agent", "Error sending zip", "Agent failed to download upgrade zip", "Waiting for backup node upgrade", "Ready to upgrade", "Tranfer node responsibility", "Sending upgrade request", "Upgrade in progress", "Agent needs commissioning", "Upgrade success", "Upgrade failed", "Trial expired" ], "x-ignition-non-secret": false }, "statusMsg": { "description": "If available, this will report details on the current status of the remote upgrade.", "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.historian/historian-provider/{name}": { "get": { "tags": [ "historian-config" ], "summary": "Get Historian Config", "description": "Retrieve configuration details about a specific Historian resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CoreHistorian", "CsvHistorian", "HistorySplitter", "InternalHistorian", "RemoteHistorian", "SimulatorHistorian", "SqlHistorian", "WideDbHistorian" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.historian/historian-provider/CoreHistorian", "title": "CoreHistorian", "type": "object", "properties": { "partitionInterval": { "description": "The partition interval used when creating tables.", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "dataDeduplication": { "description": "When deduplication is enabled, incoming data with matching keys will update existing entries rather than create new ones, which helps maintain data integrity by allowing corrected data to replace erroneous entries.", "type": "boolean", "x-ignition-non-secret": false }, "maintenanceSettings": { "description": "Specifies the maintenance settings for handling data that exceeds the retention limit.", "type": "object", "properties": { "strategy": { "description": "Determines whether older data is archived to a target location or permanently deleted.", "type": "string", "enum": [ "NONE", "ARCHIVE", "PRUNE" ], "x-ignition-non-secret": false }, "directory": { "description": "Specifies the target directory path where data will be archived when maintenance mode is set to ARCHIVE. Must be a valid, writable directory location.", "type": "string", "x-ignition-non-secret": false }, "maintenanceAgeUnits": { "description": "\u00bfCoreHistorianSettings.MaintenanceAgeUnit.Description?", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maintenanceAge": { "description": "Specifies the age threshold for data maintenance.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/CsvHistorian", "title": "CsvHistorian", "type": "object", "properties": { "filePath": { "description": "Specifies the CSV file path. Required format: timestamp column followed by value columns, with tag names defined in the header row.", "type": "string", "x-ignition-non-secret": false }, "relativeTimestamps": { "description": "When enabled, treats the first timestamp as a reference point, interpreting subsequent timestamps as relative offsets from this initial time.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/HistorySplitter", "title": "HistorySplitter", "type": "object", "properties": { "primaryHistorian": { "description": "The primary historian for data storage and queries. Serves as the default query source unless limited by time constraints or when unavailable.", "type": "string", "x-ignition-non-secret": false }, "secondaryHistorian": { "description": "The secondary historian for data storage, handling queries when the primary is unavailable or when queries exceed the configured time limit.", "type": "string", "x-ignition-non-secret": false }, "queryLimit": { "description": "Controls whether queries are routed based on time constraints.", "type": "object", "properties": { "enabled": { "description": "If enabled, older queries are automatically directed to the secondary historian.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how far back in time queries will be handled by the primary historian before routing to the secondary historian.", "type": "number", "x-ignition-non-secret": false }, "units": { "description": "The time unit used for the query routing threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/InternalHistorian", "title": "InternalHistorian", "type": "object", "properties": { "timeLimit": { "description": "Controls whether data is retained based on age.", "type": "object", "properties": { "enabled": { "description": "If enabled, older data is removed to maintain the specified time limit.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how long data should be retained before removal.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "The time unit used for the storage time limit.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pointLimit": { "description": "Controls whether data is limited by the total number of stored points.", "type": "object", "properties": { "enabled": { "description": "If enabled, oldest points are removed when limit is exceeded.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the maximum number of data points to retain in storage.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "remoteSync": { "description": "Configures real-time data synchronization to a remote gateway historian.", "type": "object", "properties": { "enabled": { "description": "If enabled, historical data is synchronized based on the specified frequency, batch size, and optional schedule constraints.", "type": "boolean", "x-ignition-non-secret": false }, "serverName": { "description": "The target Gateway for remote synchronization. Must have the Historian Core module installed and allow remote storage.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "The historian on the remote gateway where data will be synchronized.", "type": "string", "x-ignition-non-secret": false }, "enableSchedule": { "description": "When enabled, data synchronization only occurs during the specified time ranges.", "type": "boolean", "x-ignition-non-secret": false }, "schedule": { "description": "Defines when synchronization is allowed using time ranges in 24-hour format. Examples: \"9:00-15:00\", \"21:00-05:00\", \"20:30-04:30\". Use comma-separation for multiple ranges.", "type": "string", "x-ignition-non-secret": false }, "syncFrequencySize": { "description": "Specifies the interval between data synchronization attempts to the remote gateway. Works in conjunction with the sync schedule when enabled.", "type": "number", "x-ignition-non-secret": false }, "syncFrequencyUnits": { "description": "The time unit used for the sync frequency.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maxBatchSize": { "description": "The maximum number of data points included in each synchronization transmission to the remote gateway.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/RemoteHistorian", "title": "RemoteHistorian", "type": "object", "properties": { "serverName": { "description": "Specifies the gateway used to connect to the remote historian.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "Specifies the target remote historian for data operations.", "type": "string", "x-ignition-non-secret": false }, "storageAllowed": { "description": "Specifies whether the provider operates in read-only or storage mode. When enabled, creates a store-forward engine to forward data to the remote gateway. When disabled, only supports historical data queries.", "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "Specifies the maximum number of data points per transmission request in storage mode. Set to 0 for unlimited batch size.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/SqlHistorian", "title": "SqlHistorian", "type": "object", "properties": { "database": { "description": "Specifies the target SQL database for storing and retrieving historical data.", "type": "string", "x-ignition-non-secret": false }, "partition": { "description": "Configures how data is segmented into time-based partitions.", "type": "object", "properties": { "enabled": { "description": "Enables time-based table partitioning to segment historical data. Partitioning improves query performance and simplifies data lifecycle management.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the time duration of each partition, using the defined time unit.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "Specifies the time unit used to define partition duration.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "optimized": { "description": "Enables data pre-processing within partitions to optimize query performance. While consuming additional storage space, this feature reduces query time by maintaining summarized data.", "type": "boolean", "x-ignition-non-secret": false }, "optimizedWindowSeconds": { "description": "Specifies the time interval used for data summarization when partition optimization is enabled.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "description": "Configures data pruning by specifying the age threshold and time units for determining when historical data becomes eligible for deletion at the partition level.", "type": "object", "properties": { "enabled": { "description": "Enables periodic pruning of older partitions.", "type": "boolean", "x-ignition-non-secret": false }, "age": { "description": "Specifies the age threshold for data retention.", "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "description": "Specifies the time unit used for the data retention age threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "trackSce": { "description": "Controls quality validation for calculated values based on tag group execution status. When enabled, values are marked as bad quality if calculated outside their tag group's execution period. When disabled, values inherit the tag's latest quality state.", "type": "boolean", "x-ignition-non-secret": false }, "staleMultiplier": { "description": "Defines the staleness threshold as a multiple of the tag group execution rate. Values are marked as bad quality when the time since last recorded execution exceeds this threshold.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/WideDbHistorian", "title": "WideDbHistorian", "type": "object", "properties": { "datasource": { "description": "Specifies the target SQL database for querying historical data.", "type": "string", "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CoreHistorian", "CsvHistorian", "HistorySplitter", "InternalHistorian", "RemoteHistorian", "SimulatorHistorian", "SqlHistorian", "WideDbHistorian" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.historian/historian-provider/CoreHistorian", "title": "CoreHistorian", "type": "object", "properties": { "partitionInterval": { "description": "The partition interval used when creating tables.", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "dataDeduplication": { "description": "When deduplication is enabled, incoming data with matching keys will update existing entries rather than create new ones, which helps maintain data integrity by allowing corrected data to replace erroneous entries.", "type": "boolean", "x-ignition-non-secret": false }, "maintenanceSettings": { "description": "Specifies the maintenance settings for handling data that exceeds the retention limit.", "type": "object", "properties": { "strategy": { "description": "Determines whether older data is archived to a target location or permanently deleted.", "type": "string", "enum": [ "NONE", "ARCHIVE", "PRUNE" ], "x-ignition-non-secret": false }, "directory": { "description": "Specifies the target directory path where data will be archived when maintenance mode is set to ARCHIVE. Must be a valid, writable directory location.", "type": "string", "x-ignition-non-secret": false }, "maintenanceAgeUnits": { "description": "\u00bfCoreHistorianSettings.MaintenanceAgeUnit.Description?", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maintenanceAge": { "description": "Specifies the age threshold for data maintenance.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/CsvHistorian", "title": "CsvHistorian", "type": "object", "properties": { "filePath": { "description": "Specifies the CSV file path. Required format: timestamp column followed by value columns, with tag names defined in the header row.", "type": "string", "x-ignition-non-secret": false }, "relativeTimestamps": { "description": "When enabled, treats the first timestamp as a reference point, interpreting subsequent timestamps as relative offsets from this initial time.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/HistorySplitter", "title": "HistorySplitter", "type": "object", "properties": { "primaryHistorian": { "description": "The primary historian for data storage and queries. Serves as the default query source unless limited by time constraints or when unavailable.", "type": "string", "x-ignition-non-secret": false }, "secondaryHistorian": { "description": "The secondary historian for data storage, handling queries when the primary is unavailable or when queries exceed the configured time limit.", "type": "string", "x-ignition-non-secret": false }, "queryLimit": { "description": "Controls whether queries are routed based on time constraints.", "type": "object", "properties": { "enabled": { "description": "If enabled, older queries are automatically directed to the secondary historian.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how far back in time queries will be handled by the primary historian before routing to the secondary historian.", "type": "number", "x-ignition-non-secret": false }, "units": { "description": "The time unit used for the query routing threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/InternalHistorian", "title": "InternalHistorian", "type": "object", "properties": { "timeLimit": { "description": "Controls whether data is retained based on age.", "type": "object", "properties": { "enabled": { "description": "If enabled, older data is removed to maintain the specified time limit.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how long data should be retained before removal.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "The time unit used for the storage time limit.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pointLimit": { "description": "Controls whether data is limited by the total number of stored points.", "type": "object", "properties": { "enabled": { "description": "If enabled, oldest points are removed when limit is exceeded.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the maximum number of data points to retain in storage.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "remoteSync": { "description": "Configures real-time data synchronization to a remote gateway historian.", "type": "object", "properties": { "enabled": { "description": "If enabled, historical data is synchronized based on the specified frequency, batch size, and optional schedule constraints.", "type": "boolean", "x-ignition-non-secret": false }, "serverName": { "description": "The target Gateway for remote synchronization. Must have the Historian Core module installed and allow remote storage.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "The historian on the remote gateway where data will be synchronized.", "type": "string", "x-ignition-non-secret": false }, "enableSchedule": { "description": "When enabled, data synchronization only occurs during the specified time ranges.", "type": "boolean", "x-ignition-non-secret": false }, "schedule": { "description": "Defines when synchronization is allowed using time ranges in 24-hour format. Examples: \"9:00-15:00\", \"21:00-05:00\", \"20:30-04:30\". Use comma-separation for multiple ranges.", "type": "string", "x-ignition-non-secret": false }, "syncFrequencySize": { "description": "Specifies the interval between data synchronization attempts to the remote gateway. Works in conjunction with the sync schedule when enabled.", "type": "number", "x-ignition-non-secret": false }, "syncFrequencyUnits": { "description": "The time unit used for the sync frequency.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maxBatchSize": { "description": "The maximum number of data points included in each synchronization transmission to the remote gateway.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/RemoteHistorian", "title": "RemoteHistorian", "type": "object", "properties": { "serverName": { "description": "Specifies the gateway used to connect to the remote historian.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "Specifies the target remote historian for data operations.", "type": "string", "x-ignition-non-secret": false }, "storageAllowed": { "description": "Specifies whether the provider operates in read-only or storage mode. When enabled, creates a store-forward engine to forward data to the remote gateway. When disabled, only supports historical data queries.", "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "Specifies the maximum number of data points per transmission request in storage mode. Set to 0 for unlimited batch size.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/SqlHistorian", "title": "SqlHistorian", "type": "object", "properties": { "database": { "description": "Specifies the target SQL database for storing and retrieving historical data.", "type": "string", "x-ignition-non-secret": false }, "partition": { "description": "Configures how data is segmented into time-based partitions.", "type": "object", "properties": { "enabled": { "description": "Enables time-based table partitioning to segment historical data. Partitioning improves query performance and simplifies data lifecycle management.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the time duration of each partition, using the defined time unit.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "Specifies the time unit used to define partition duration.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "optimized": { "description": "Enables data pre-processing within partitions to optimize query performance. While consuming additional storage space, this feature reduces query time by maintaining summarized data.", "type": "boolean", "x-ignition-non-secret": false }, "optimizedWindowSeconds": { "description": "Specifies the time interval used for data summarization when partition optimization is enabled.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "description": "Configures data pruning by specifying the age threshold and time units for determining when historical data becomes eligible for deletion at the partition level.", "type": "object", "properties": { "enabled": { "description": "Enables periodic pruning of older partitions.", "type": "boolean", "x-ignition-non-secret": false }, "age": { "description": "Specifies the age threshold for data retention.", "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "description": "Specifies the time unit used for the data retention age threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "trackSce": { "description": "Controls quality validation for calculated values based on tag group execution status. When enabled, values are marked as bad quality if calculated outside their tag group's execution period. When disabled, values inherit the tag's latest quality state.", "type": "boolean", "x-ignition-non-secret": false }, "staleMultiplier": { "description": "Defines the staleness threshold as a multiple of the tag group execution rate. Values are marked as bad quality when the time since last recorded execution exceeds this threshold.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/WideDbHistorian", "title": "WideDbHistorian", "type": "object", "properties": { "datasource": { "description": "Specifies the target SQL database for querying historical data.", "type": "string", "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "metrics": { "type": "object", "description": "The metrics of the resource instance.", "properties": { "query": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "query.throughput.actual": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "query.throughput.projected": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "storage": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "storage.throughput.actual.success": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "storage.throughput.actual.failure": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "storage.throughput.projected": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig/{name}": { "get": { "tags": [ "local-devices" ], "summary": "Get Local Devices Config", "description": "Retrieve configuration details about a specific Local Devices resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "ipConnectivity": { "type": "object", "properties": { "bindAddress": { "type": "string", "x-ignition-non-secret": false }, "bindPort": { "type": "number", "x-ignition-non-secret": false }, "broadcastAddress": { "type": "string", "x-ignition-non-secret": false }, "networkPrefixLength": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "bacnetConnectivity": { "type": "object", "properties": { "deviceNumber": { "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "broadcastManagement": { "type": "object", "properties": { "foreignDeviceRegistrationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "backupDeviceNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "ipConnectivity": { "type": "object", "properties": { "bindAddress": { "type": "string", "x-ignition-non-secret": false }, "bindPort": { "type": "number", "x-ignition-non-secret": false }, "broadcastAddress": { "type": "string", "x-ignition-non-secret": false }, "networkPrefixLength": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "bacnetConnectivity": { "type": "object", "properties": { "deviceNumber": { "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "broadcastManagement": { "type": "object", "properties": { "foreignDeviceRegistrationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "backupDeviceNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.opcua/device/{name}": { "get": { "tags": [ "device" ], "summary": "Get Devices Config", "description": "Retrieve configuration details about a specific Devices resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CompactLogix", "ControlLogix", "DairyDemoSimulator", "Dnp3Driver", "LogixDriver", "MicroLogix", "ModbusRtu", "ModbusRtuOverTcp", "ModbusTcp", "PLC5", "ProgrammableSimulatorDevice", "S71200", "S71500", "S7300", "S7400", "SLC", "SLCSimulator", "Simulator", "TCPDriver", "UDPDriver", "com.inductiveautomation.BacnetIpDeviceType", "com.inductiveautomation.FinsTcpDeviceType", "com.inductiveautomation.FinsUdpDeviceType", "com.inductiveautomation.Micro800DeviceType", "com.inductiveautomation.MitsubishiTcpDeviceType", "com.inductiveautomation.ignition.siemens", "com.inductiveautomation.omron.NjDriver" ] }, "browsePath": { "type": "string", "x-ignition-non-secret": false }, "rolePermissionMappings": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.opcua/device/CompactLogix", "title": "CompactLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ControlLogix", "title": "ControlLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/Dnp3Driver", "title": "Dnp3Driver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "sourceAddress": { "type": "number", "x-ignition-non-secret": false }, "destinationAddress": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "integrityPollInterval": { "type": "number", "x-ignition-non-secret": false }, "directOperateEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "unsolicitedMessagingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxMessageFragmentSize": { "type": "number", "x-ignition-non-secret": false }, "retries": { "type": "number", "x-ignition-non-secret": false }, "timeSynchronizationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "implementationLevel": { "type": "string", "enum": [ "UNKNOWN", "ONE", "TWO", "THREE", "FOUR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "defaults": { "type": "object", "properties": { "analogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenAnalogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "analogOutput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "counter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenCounter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "doubleBitBinaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryOutput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/LogixDriver", "title": "LogixDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "default": 44818, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Max amount of time to wait, in milliseconds, for responses from the processor.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "connectionPath": { "description": "Optionally, the connection path to the processor. If specified, the slot number setting is ignored, so be sure to terminate the path with backplane and slot number.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Connection Path" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "automaticRebrowseEnabled": { "description": "Monitor for tag additions and UDT changes and automatically initiate a re-browse when detected. If this is disabled tags will only be browsed when connecting and reconnecting.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Automatic Rebrowse" }, "type": "boolean", "x-ignition-non-secret": false }, "identityRequestFrequency": { "description": "Frequency, in milliseconds, that the request to read CIP Identity Object attributes occurs at.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Identity Request Frequency *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionSize": { "description": "The CIP connection size to use during Forward Open requests.", "default": 500, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "description": "Target timeout, in milliseconds, for CIP connections and RPI.", "default": 16000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in which the processor resides. If not in a rack, usually 0.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Controls both the max number of concurrent unconnected requests and the max number of concurrent connected requests (and therefore CIP connections) allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "identityRequestFrequency", "cipConnectionSize", "cipConnectionTimeout", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/MicroLogix", "title": "MicroLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtu", "title": "ModbusRtu", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "serialPort": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Serial Port *" }, "type": "string", "x-ignition-non-secret": false }, "bitRate": { "default": "BitRate_115200", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Bit Rate" }, "type": "string", "enum": [ "BitRate_110", "BitRate_150", "BitRate_300", "BitRate_600", "BitRate_1200", "BitRate_2400", "BitRate_4800", "BitRate_9600", "BitRate_19200", "BitRate_38400", "BitRate_57600", "BitRate_115200", "BitRate_230400", "BitRate_460800", "BitRate_921600" ], "x-ignition-non-secret": false }, "dataBits": { "default": "DataBits_8", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Data Bits" }, "type": "string", "enum": [ "DataBits_5", "DataBits_6", "DataBits_7", "DataBits_8" ], "x-ignition-non-secret": false }, "parity": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Parity" }, "type": "string", "enum": [ "Even", "Mark", "None", "Odd", "Space" ], "x-ignition-non-secret": false }, "stopBits": { "default": "StopBits_1", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Stop Bits" }, "type": "string", "enum": [ "StopBits_1", "StopBits_2" ], "x-ignition-non-secret": false }, "handshake": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Handshake" }, "type": "string", "enum": [ "None", "XonXoff", "CtsRts", "DsrDtr" ], "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "rs485Mode": { "description": "Enable if using RS-485 instead of RS-232.", "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "RS-485 Mode" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "serialPort", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtuOverTcp", "title": "ModbusRtuOverTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusTcp", "title": "ModbusTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/PLC5", "title": "PLC5", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ProgrammableSimulatorDevice", "title": "ProgrammableSimulatorDevice", "type": "object", "properties": { "repeat": { "type": "boolean", "x-ignition-non-secret": false }, "timeIntervalRate": { "type": "number", "x-ignition-non-secret": false }, "legacyMode": { "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71200", "title": "S71200", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71500", "title": "S71500", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7300", "title": "S7300", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7400", "title": "S7400", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/SLC", "title": "SLC", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/TCPDriver", "title": "TCPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false }, "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "connectTimeout": { "description": "The timeout, in milliseconds, when opening a socket connection to a remote host. Set to 0 to disable.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Connect Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "inactivityTimeout": { "description": "The number of milliseconds without receiving data from the source before a disconnect/reconnect is made. Set to 0 to disable.", "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Inactivity Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "ports", "address", "connectTimeout", "inactivityTimeout" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "write": { "type": "object", "properties": { "enabled": { "description": "Enable writeback capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "WRITING", "label": "Writeback Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "delimiter": { "description": "The delimiter expected by the device signaling the end of an incoming message.", "x-form": { "fieldType": "TEXT", "category": "WRITING", "label": "Writeback Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Duration, in milliseconds, to wait for writes to complete before returning.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "WRITING", "label": "Write Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "timeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/UDPDriver", "title": "UDPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "address", "ports" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "udp": { "type": "object", "properties": { "bufferSize": { "description": "The size of the message buffer in bytes.", "default": 4096, "x-form": { "fieldType": "NUMBER", "category": "UDP", "label": "Message Buffer Size" }, "type": "number", "x-ignition-non-secret": false }, "multicast": { "description": "Enable multicast capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "UDP", "label": "Multicast" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.BacnetIpDeviceType", "title": "com.inductiveautomation.BacnetIpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "localDevice": { "description": "The name of the local BACnet device instance that will be used when communicating with the remote device.", "x-form": { "fieldType": "REFERENCE", "category": "CONNECTIVITY", "label": "Local Device *", "referenceType": "com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig" }, "type": "string", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the remote device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port that the remote device is listening on.", "default": 47808, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteDeviceNumber": { "description": "The instance number/id of the remote device.", "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Device Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "localDevice", "remoteAddress", "remotePort", "remoteDeviceNumber" ], "x-ignition-non-secret": false }, "cov": { "type": "object", "properties": { "enabled": { "description": "If true a COV subscription is used for properties that support it. If false all properties are polled.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "COV Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "heartbeatInterval": { "description": "Interval, in seconds, between reading the System_Status property of the Device object as a heartbeat. If 3 consecutive attempts fail all COV items will be marked with uncertain quality.", "default": 5, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Heartbeat Interval" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionLifetime": { "description": "Lifetime, in seconds, of COV subscriptions. Use 0 for indefinite. When non-zero COV subscriptions are renewed at a rate of 75% of the lifetime.", "default": 900, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Lifetime" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionRetryInterval": { "description": "Interval, in seconds, to attempt recreating COV subscriptions that previously failed to be created or renewed. Use 0 to have failed subscription items remain polled.", "default": 120, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Retry Interval" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "confirmedNotificationsEnabled": { "description": "If true COV subscriptions use confirmed notifications. If false COV subscriptions use unconfirmed notifications.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "Confirmed Notifications Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "discoveryTimeout": { "description": "Duration, in seconds, to wait for the remote device discovery process to complete.", "default": 5, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Discovery Timeout" }, "type": "number", "x-ignition-non-secret": false }, "writePriority": { "description": "The priority to use when writing to commandable properties.", "default": 8, "minimum": 1, "maximum": 16, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Write Priority" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsTcpDeviceType", "title": "com.inductiveautomation.FinsTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname or IP address of the target device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsUdpDeviceType", "title": "com.inductiveautomation.FinsUdpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "bindAddress": { "description": "The hostname or IP address of the Gateway.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Bind Address *" }, "type": "string", "x-ignition-non-secret": false }, "bindPort": { "description": "The port you wish to create a UDP connection on for the Gateway.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Bind Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port your Omron device is listening on.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "bindAddress", "bindPort", "remoteAddress", "remotePort", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.Micro800DeviceType", "title": "com.inductiveautomation.Micro800DeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "writePriorityRatio": { "type": "number", "x-ignition-non-secret": false }, "autoRebrowseEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "cipConnectionSize": { "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.MitsubishiTcpDeviceType", "title": "com.inductiveautomation.MitsubishiTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The IP Address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 1025, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "series": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": "iQR", "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Series" }, "type": "string", "enum": [ "iQR", "iQF", "Q", "L", "F" ], "x-ignition-non-secret": false }, "pcNumber": { "description": "The network module station number of an access target.", "default": 255, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "PC Number *" }, "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "description": "The network number of an access target.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Network Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationIoModuleNumber": { "description": "The start input/output number of a multi-drop connection source module, or the CPU module of a multiple CPU system.", "default": 1023, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module I/O Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationModuleStationNumber": { "description": "The station number of an access target module when accessing a multi-drop connection station.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module Station Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pcNumber", "networkNumber", "destinationIoModuleNumber", "destinationModuleStationNumber" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations. Increasing the max gap size will reduce the number requests but increase the amount of data requested.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request when an abundance of both types are queued up for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.ignition.siemens", "title": "com.inductiveautomation.ignition.siemens", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 102, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "Maximum amount of time to wait for a response in milliseconds.", "default": 30000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "deviceType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Device Type *" }, "type": "string", "enum": [ "S7_300", "S7_400", "S7_1200", "S7_1500" ], "x-ignition-non-secret": false }, "addressType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Address Type *" }, "type": "string", "enum": [ "ABSOLUTE", "SYMBOLIC" ], "x-ignition-non-secret": false }, "rack": { "default": 0, "minimum": 0, "maximum": 7, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Rack Number *" }, "type": "number", "x-ignition-non-secret": false }, "slot": { "default": 0, "minimum": 0, "maximum": 31, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "deviceType", "addressType", "rack", "slot" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "optimizeWrites": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Optimize Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "forceSecureConnection": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Force Secure Connection" }, "type": "boolean", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "ADVANCED SETTINGS", "label": "Password" } } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.omron.NjDriver", "title": "com.inductiveautomation.omron.NjDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectionSize": { "description": "The CIP connection size to use.", "default": 1994, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "dateTimeOffsetHours": { "description": "Offset in hours for Date/Time values.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Date/Time Offset *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in the backplane in which the CPU is located.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "The number of concurrently issued requests allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Concurrency *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "connectionSize", "dateTimeOffsetHours", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CompactLogix", "ControlLogix", "DairyDemoSimulator", "Dnp3Driver", "LogixDriver", "MicroLogix", "ModbusRtu", "ModbusRtuOverTcp", "ModbusTcp", "PLC5", "ProgrammableSimulatorDevice", "S71200", "S71500", "S7300", "S7400", "SLC", "SLCSimulator", "Simulator", "TCPDriver", "UDPDriver", "com.inductiveautomation.BacnetIpDeviceType", "com.inductiveautomation.FinsTcpDeviceType", "com.inductiveautomation.FinsUdpDeviceType", "com.inductiveautomation.Micro800DeviceType", "com.inductiveautomation.MitsubishiTcpDeviceType", "com.inductiveautomation.ignition.siemens", "com.inductiveautomation.omron.NjDriver" ] }, "browsePath": { "type": "string", "x-ignition-non-secret": false }, "rolePermissionMappings": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.opcua/device/CompactLogix", "title": "CompactLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ControlLogix", "title": "ControlLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/Dnp3Driver", "title": "Dnp3Driver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "sourceAddress": { "type": "number", "x-ignition-non-secret": false }, "destinationAddress": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "integrityPollInterval": { "type": "number", "x-ignition-non-secret": false }, "directOperateEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "unsolicitedMessagingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxMessageFragmentSize": { "type": "number", "x-ignition-non-secret": false }, "retries": { "type": "number", "x-ignition-non-secret": false }, "timeSynchronizationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "implementationLevel": { "type": "string", "enum": [ "UNKNOWN", "ONE", "TWO", "THREE", "FOUR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "defaults": { "type": "object", "properties": { "analogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenAnalogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "analogOutput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "counter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenCounter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "doubleBitBinaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryOutput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/LogixDriver", "title": "LogixDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "default": 44818, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Max amount of time to wait, in milliseconds, for responses from the processor.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "connectionPath": { "description": "Optionally, the connection path to the processor. If specified, the slot number setting is ignored, so be sure to terminate the path with backplane and slot number.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Connection Path" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "automaticRebrowseEnabled": { "description": "Monitor for tag additions and UDT changes and automatically initiate a re-browse when detected. If this is disabled tags will only be browsed when connecting and reconnecting.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Automatic Rebrowse" }, "type": "boolean", "x-ignition-non-secret": false }, "identityRequestFrequency": { "description": "Frequency, in milliseconds, that the request to read CIP Identity Object attributes occurs at.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Identity Request Frequency *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionSize": { "description": "The CIP connection size to use during Forward Open requests.", "default": 500, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "description": "Target timeout, in milliseconds, for CIP connections and RPI.", "default": 16000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in which the processor resides. If not in a rack, usually 0.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Controls both the max number of concurrent unconnected requests and the max number of concurrent connected requests (and therefore CIP connections) allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "identityRequestFrequency", "cipConnectionSize", "cipConnectionTimeout", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/MicroLogix", "title": "MicroLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtu", "title": "ModbusRtu", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "serialPort": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Serial Port *" }, "type": "string", "x-ignition-non-secret": false }, "bitRate": { "default": "BitRate_115200", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Bit Rate" }, "type": "string", "enum": [ "BitRate_110", "BitRate_150", "BitRate_300", "BitRate_600", "BitRate_1200", "BitRate_2400", "BitRate_4800", "BitRate_9600", "BitRate_19200", "BitRate_38400", "BitRate_57600", "BitRate_115200", "BitRate_230400", "BitRate_460800", "BitRate_921600" ], "x-ignition-non-secret": false }, "dataBits": { "default": "DataBits_8", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Data Bits" }, "type": "string", "enum": [ "DataBits_5", "DataBits_6", "DataBits_7", "DataBits_8" ], "x-ignition-non-secret": false }, "parity": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Parity" }, "type": "string", "enum": [ "Even", "Mark", "None", "Odd", "Space" ], "x-ignition-non-secret": false }, "stopBits": { "default": "StopBits_1", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Stop Bits" }, "type": "string", "enum": [ "StopBits_1", "StopBits_2" ], "x-ignition-non-secret": false }, "handshake": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Handshake" }, "type": "string", "enum": [ "None", "XonXoff", "CtsRts", "DsrDtr" ], "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "rs485Mode": { "description": "Enable if using RS-485 instead of RS-232.", "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "RS-485 Mode" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "serialPort", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtuOverTcp", "title": "ModbusRtuOverTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusTcp", "title": "ModbusTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/PLC5", "title": "PLC5", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ProgrammableSimulatorDevice", "title": "ProgrammableSimulatorDevice", "type": "object", "properties": { "repeat": { "type": "boolean", "x-ignition-non-secret": false }, "timeIntervalRate": { "type": "number", "x-ignition-non-secret": false }, "legacyMode": { "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71200", "title": "S71200", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71500", "title": "S71500", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7300", "title": "S7300", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7400", "title": "S7400", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/SLC", "title": "SLC", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/TCPDriver", "title": "TCPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false }, "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "connectTimeout": { "description": "The timeout, in milliseconds, when opening a socket connection to a remote host. Set to 0 to disable.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Connect Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "inactivityTimeout": { "description": "The number of milliseconds without receiving data from the source before a disconnect/reconnect is made. Set to 0 to disable.", "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Inactivity Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "ports", "address", "connectTimeout", "inactivityTimeout" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "write": { "type": "object", "properties": { "enabled": { "description": "Enable writeback capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "WRITING", "label": "Writeback Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "delimiter": { "description": "The delimiter expected by the device signaling the end of an incoming message.", "x-form": { "fieldType": "TEXT", "category": "WRITING", "label": "Writeback Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Duration, in milliseconds, to wait for writes to complete before returning.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "WRITING", "label": "Write Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "timeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/UDPDriver", "title": "UDPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "address", "ports" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "udp": { "type": "object", "properties": { "bufferSize": { "description": "The size of the message buffer in bytes.", "default": 4096, "x-form": { "fieldType": "NUMBER", "category": "UDP", "label": "Message Buffer Size" }, "type": "number", "x-ignition-non-secret": false }, "multicast": { "description": "Enable multicast capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "UDP", "label": "Multicast" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.BacnetIpDeviceType", "title": "com.inductiveautomation.BacnetIpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "localDevice": { "description": "The name of the local BACnet device instance that will be used when communicating with the remote device.", "x-form": { "fieldType": "REFERENCE", "category": "CONNECTIVITY", "label": "Local Device *", "referenceType": "com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig" }, "type": "string", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the remote device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port that the remote device is listening on.", "default": 47808, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteDeviceNumber": { "description": "The instance number/id of the remote device.", "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Device Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "localDevice", "remoteAddress", "remotePort", "remoteDeviceNumber" ], "x-ignition-non-secret": false }, "cov": { "type": "object", "properties": { "enabled": { "description": "If true a COV subscription is used for properties that support it. If false all properties are polled.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "COV Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "heartbeatInterval": { "description": "Interval, in seconds, between reading the System_Status property of the Device object as a heartbeat. If 3 consecutive attempts fail all COV items will be marked with uncertain quality.", "default": 5, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Heartbeat Interval" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionLifetime": { "description": "Lifetime, in seconds, of COV subscriptions. Use 0 for indefinite. When non-zero COV subscriptions are renewed at a rate of 75% of the lifetime.", "default": 900, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Lifetime" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionRetryInterval": { "description": "Interval, in seconds, to attempt recreating COV subscriptions that previously failed to be created or renewed. Use 0 to have failed subscription items remain polled.", "default": 120, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Retry Interval" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "confirmedNotificationsEnabled": { "description": "If true COV subscriptions use confirmed notifications. If false COV subscriptions use unconfirmed notifications.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "Confirmed Notifications Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "discoveryTimeout": { "description": "Duration, in seconds, to wait for the remote device discovery process to complete.", "default": 5, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Discovery Timeout" }, "type": "number", "x-ignition-non-secret": false }, "writePriority": { "description": "The priority to use when writing to commandable properties.", "default": 8, "minimum": 1, "maximum": 16, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Write Priority" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsTcpDeviceType", "title": "com.inductiveautomation.FinsTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname or IP address of the target device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsUdpDeviceType", "title": "com.inductiveautomation.FinsUdpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "bindAddress": { "description": "The hostname or IP address of the Gateway.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Bind Address *" }, "type": "string", "x-ignition-non-secret": false }, "bindPort": { "description": "The port you wish to create a UDP connection on for the Gateway.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Bind Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port your Omron device is listening on.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "bindAddress", "bindPort", "remoteAddress", "remotePort", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.Micro800DeviceType", "title": "com.inductiveautomation.Micro800DeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "writePriorityRatio": { "type": "number", "x-ignition-non-secret": false }, "autoRebrowseEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "cipConnectionSize": { "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.MitsubishiTcpDeviceType", "title": "com.inductiveautomation.MitsubishiTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The IP Address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 1025, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "series": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": "iQR", "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Series" }, "type": "string", "enum": [ "iQR", "iQF", "Q", "L", "F" ], "x-ignition-non-secret": false }, "pcNumber": { "description": "The network module station number of an access target.", "default": 255, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "PC Number *" }, "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "description": "The network number of an access target.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Network Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationIoModuleNumber": { "description": "The start input/output number of a multi-drop connection source module, or the CPU module of a multiple CPU system.", "default": 1023, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module I/O Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationModuleStationNumber": { "description": "The station number of an access target module when accessing a multi-drop connection station.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module Station Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pcNumber", "networkNumber", "destinationIoModuleNumber", "destinationModuleStationNumber" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations. Increasing the max gap size will reduce the number requests but increase the amount of data requested.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request when an abundance of both types are queued up for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.ignition.siemens", "title": "com.inductiveautomation.ignition.siemens", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 102, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "Maximum amount of time to wait for a response in milliseconds.", "default": 30000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "deviceType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Device Type *" }, "type": "string", "enum": [ "S7_300", "S7_400", "S7_1200", "S7_1500" ], "x-ignition-non-secret": false }, "addressType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Address Type *" }, "type": "string", "enum": [ "ABSOLUTE", "SYMBOLIC" ], "x-ignition-non-secret": false }, "rack": { "default": 0, "minimum": 0, "maximum": 7, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Rack Number *" }, "type": "number", "x-ignition-non-secret": false }, "slot": { "default": 0, "minimum": 0, "maximum": 31, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "deviceType", "addressType", "rack", "slot" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "optimizeWrites": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Optimize Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "forceSecureConnection": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Force Secure Connection" }, "type": "boolean", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "ADVANCED SETTINGS", "label": "Password" } } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.omron.NjDriver", "title": "com.inductiveautomation.omron.NjDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectionSize": { "description": "The CIP connection size to use.", "default": 1994, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "dateTimeOffsetHours": { "description": "Offset in hours for Date/Time values.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Date/Time Offset *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in the backplane in which the CPU is located.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "The number of concurrently issued requests allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Concurrency *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "connectionSize", "dateTimeOffsetHours", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.perspective/fonts/{name}": { "get": { "tags": [ "config-perspective-fonts" ], "summary": "Get Fonts Config", "description": "Retrieve configuration details about a specific Fonts resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object" }, "backupConfig": { "type": "object" }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.perspective/icons/{name}": { "get": { "tags": [ "config-perspective-icons" ], "summary": "Get Icons Config", "description": "Retrieve configuration details about a specific Icons resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "svgFileName": { "description": "The name of the icon library SVG File. This is a required data file which must be uploaded for this icon library to be used.", "examples": [ "library.svg" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "svgFileName" ] }, "backupConfig": { "type": "object", "properties": { "svgFileName": { "description": "The name of the icon library SVG File. This is a required data file which must be uploaded for this icon library to be used.", "examples": [ "library.svg" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "svgFileName" ] }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/com.inductiveautomation.perspective/themes/{name}": { "get": { "tags": [ "config-perspective-themes" ], "summary": "Get Themes Config", "description": "Retrieve configuration details about a specific Themes resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "entrypoint": { "description": "The entrypoint file for the theme. this is typically a css file whose name matches the theme name.", "default": "index.css", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entrypoint" ] }, "backupConfig": { "type": "object", "properties": { "entrypoint": { "description": "The entrypoint file for the theme. this is typically a css file whose name matches the theme name.", "default": "index.css", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entrypoint" ] }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/alarm-journal/{name}": { "get": { "tags": [ "alarm-journal-resources" ], "summary": "Get Alarm Journal Settings Config", "description": "Retrieve configuration details about a specific Alarm Journal Settings resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "DATASOURCE", "LOCAL", "REMOTE" ] }, "queryOnly": { "description": "If true, this alarm journal will not be capable of storing events. Any attempt to store events will be discarded.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Query Only" }, "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/alarm-journal/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Events will be stored to this datasource.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Datasource *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "events": { "type": "object", "properties": { "minPriority": { "description": "Only events equal to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "tableName": { "description": "The table name for the core event table.", "default": "alarm_events", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "dataTableName": { "description": "The table name for event data associated with alarms.", "default": "alarm_event_data", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Event Data Table Name" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, journaled events will be stored through the store and forward system. If not enabled, they will be stored directly against the database.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/alarm-journal/LOCAL", "title": "LOCAL", "type": "object", "properties": { "events": { "type": "object", "properties": { "minPriority": { "description": "Only events to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age *" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "required": [ "age" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/alarm-journal/REMOTE", "title": "REMOTE", "type": "object", "properties": { "remoteGateway": { "type": "object", "properties": { "targetServer": { "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway Name *", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetJournal": { "x-form": { "fieldType": "TEXT", "category": "REMOTE GATEWAY", "label": "Alarm Journal *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "targetServer", "targetJournal" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "useStoreAndForward": { "description": "If enabled, alarm journal events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "other": { "type": "object", "properties": { "maxGroupSize": { "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGroupSize" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "DATASOURCE", "LOCAL", "REMOTE" ] }, "queryOnly": { "description": "If true, this alarm journal will not be capable of storing events. Any attempt to store events will be discarded.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Query Only" }, "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/alarm-journal/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Events will be stored to this datasource.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Datasource *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "events": { "type": "object", "properties": { "minPriority": { "description": "Only events equal to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "tableName": { "description": "The table name for the core event table.", "default": "alarm_events", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "dataTableName": { "description": "The table name for event data associated with alarms.", "default": "alarm_event_data", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Event Data Table Name" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, journaled events will be stored through the store and forward system. If not enabled, they will be stored directly against the database.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/alarm-journal/LOCAL", "title": "LOCAL", "type": "object", "properties": { "events": { "type": "object", "properties": { "minPriority": { "description": "Only events to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age *" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "required": [ "age" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/alarm-journal/REMOTE", "title": "REMOTE", "type": "object", "properties": { "remoteGateway": { "type": "object", "properties": { "targetServer": { "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway Name *", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetJournal": { "x-form": { "fieldType": "TEXT", "category": "REMOTE GATEWAY", "label": "Alarm Journal *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "targetServer", "targetJournal" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "useStoreAndForward": { "description": "If enabled, alarm journal events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "other": { "type": "object", "properties": { "maxGroupSize": { "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGroupSize" ], "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/api-token/{name}": { "get": { "tags": [ "config-api-token" ], "summary": "Get API Token Config", "description": "Retrieve configuration details about a specific API Token resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic-token" ] }, "secureChannelRequired": { "type": "boolean", "title": "Secure Channel Required", "description": "Boolean indicating whether this token may only be used in secure HTTPS requests (true) or if it can be used in insecure HTTP requests (false)." }, "securityLevels": { "type": "array", "title": "Security Levels", "description": "Security levels granted to the API Token.", "items": { "$ref": "#/components/schemas/SecurityLevel" } }, "timestamp": { "type": "number", "title": "Timestamp", "description": "Number of milliseconds from 1970-01-01T00:00:00.000Z as measured in UTC until the date/time when the API token was created." } }, "required": [ "type", "secureChannelRequired", "securityLevels", "timestamp" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/api-token/basic-token", "title": "basic-token", "type": "object", "properties": { "tokenHash": { "description": "Secure digest of the API token value", "type": "string", "x-ignition-non-secret": true } }, "required": [ "tokenHash" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic-token" ] }, "secureChannelRequired": { "type": "boolean", "title": "Secure Channel Required", "description": "Boolean indicating whether this token may only be used in secure HTTPS requests (true) or if it can be used in insecure HTTP requests (false)." }, "securityLevels": { "type": "array", "title": "Security Levels", "description": "Security levels granted to the API Token.", "items": { "$ref": "#/components/schemas/SecurityLevel" } }, "timestamp": { "type": "number", "title": "Timestamp", "description": "Number of milliseconds from 1970-01-01T00:00:00.000Z as measured in UTC until the date/time when the API token was created." } }, "required": [ "type", "secureChannelRequired", "securityLevels", "timestamp" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/api-token/basic-token", "title": "basic-token", "type": "object", "properties": { "tokenHash": { "description": "Secure digest of the API token value", "type": "string", "x-ignition-non-secret": true } }, "required": [ "tokenHash" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/audit-profile/{name}": { "get": { "tags": [ "config-audit-profiles" ], "summary": "Get Audit Profiles Config", "description": "Retrieve configuration details about a specific Audit Profiles resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "database", "edge", "local", "remote" ] }, "retentionDays": { "description": "How long (in days) should audit records be kept? If set to 0, pruning will be disabled.", "default": 90, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Retention *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/audit-profile/database", "title": "database", "type": "object", "properties": { "databaseName": { "description": "The database connection to use to store audit events.", "x-form": { "fieldType": "REFERENCE", "category": "DATABASE SETTINGS", "label": "Database *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "pruneEnabled": { "description": "If false, this audit profile will never prune records, regardless of the retention field. Otherwise, the retention field will be followed.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Pruning Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "autoCreate": { "description": "If true, the table schema specified here will be automatically verified and created if necessary.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Auto Create" }, "type": "boolean", "x-ignition-non-secret": false }, "tableName": { "description": "The name of the table to store audit events.", "default": "audit_events", "x-form": { "fieldType": "TEXT", "category": "DATABASE SETTINGS", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "keyColumn": { "description": "The column name for an auto-incrementing primary key.", "default": "audit_events_id", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Key Column" }, "type": "string", "x-ignition-non-secret": true }, "timestampColumn": { "description": "The column to store the timestamp of the audit entry. Should be a SQL \"DATETIME\" type.", "default": "event_timestamp", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Timestamp Column" }, "type": "string", "x-ignition-non-secret": false }, "actorColumn": { "description": "The column in which to store the \"actor\" (usually the user) of the event.", "default": "actor", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Column" }, "type": "string", "x-ignition-non-secret": false }, "actorHostColumn": { "description": "The column in which to store the \"actor host\" (the hostname of the user's computer) of the event.", "default": "actor_host", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Host Column" }, "type": "string", "x-ignition-non-secret": false }, "actionColumn": { "description": "The column in which to store the name of the action that occurred.", "default": "action", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Column" }, "type": "string", "x-ignition-non-secret": false }, "actionTargetColumn": { "description": "The column in which to store the target of the event's action.", "default": "action_target", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Target Column" }, "type": "string", "x-ignition-non-secret": false }, "actionValueColumn": { "description": "The column in which to store the value of the event's action.", "default": "action_value", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Value Column" }, "type": "string", "x-ignition-non-secret": false }, "statusCodeColumn": { "description": "The column in which to store the operation result status of the action.", "default": "status_code", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Status Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingSystemColumn": { "description": "The column in which to store the originating system of the event.", "default": "originating_system", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating System Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingContextColumn": { "description": "The column in which to store the originating context of the event.", "default": "originating_context", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating Context Column" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "databaseName" ] }, { "$id": "ignition/audit-profile/edge", "title": "edge", "type": "object" }, { "$id": "ignition/audit-profile/local", "title": "local", "type": "object" }, { "$id": "ignition/audit-profile/remote", "title": "remote", "type": "object", "properties": { "targetSystem": { "description": "The remote system to send audit events to over the Gateway Network.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target System *" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "description": "The audit profile on the remote system to log events into.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target Profile *" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, audit events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote Gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "The maximum number of data points that can be sent per request. This value is used in conjunction with the store and forward settings to dictate how much data is sent at once. 0=unlimited", "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "targetSystem", "targetProfile" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "database", "edge", "local", "remote" ] }, "retentionDays": { "description": "How long (in days) should audit records be kept? If set to 0, pruning will be disabled.", "default": 90, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Retention *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/audit-profile/database", "title": "database", "type": "object", "properties": { "databaseName": { "description": "The database connection to use to store audit events.", "x-form": { "fieldType": "REFERENCE", "category": "DATABASE SETTINGS", "label": "Database *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "pruneEnabled": { "description": "If false, this audit profile will never prune records, regardless of the retention field. Otherwise, the retention field will be followed.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Pruning Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "autoCreate": { "description": "If true, the table schema specified here will be automatically verified and created if necessary.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Auto Create" }, "type": "boolean", "x-ignition-non-secret": false }, "tableName": { "description": "The name of the table to store audit events.", "default": "audit_events", "x-form": { "fieldType": "TEXT", "category": "DATABASE SETTINGS", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "keyColumn": { "description": "The column name for an auto-incrementing primary key.", "default": "audit_events_id", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Key Column" }, "type": "string", "x-ignition-non-secret": true }, "timestampColumn": { "description": "The column to store the timestamp of the audit entry. Should be a SQL \"DATETIME\" type.", "default": "event_timestamp", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Timestamp Column" }, "type": "string", "x-ignition-non-secret": false }, "actorColumn": { "description": "The column in which to store the \"actor\" (usually the user) of the event.", "default": "actor", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Column" }, "type": "string", "x-ignition-non-secret": false }, "actorHostColumn": { "description": "The column in which to store the \"actor host\" (the hostname of the user's computer) of the event.", "default": "actor_host", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Host Column" }, "type": "string", "x-ignition-non-secret": false }, "actionColumn": { "description": "The column in which to store the name of the action that occurred.", "default": "action", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Column" }, "type": "string", "x-ignition-non-secret": false }, "actionTargetColumn": { "description": "The column in which to store the target of the event's action.", "default": "action_target", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Target Column" }, "type": "string", "x-ignition-non-secret": false }, "actionValueColumn": { "description": "The column in which to store the value of the event's action.", "default": "action_value", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Value Column" }, "type": "string", "x-ignition-non-secret": false }, "statusCodeColumn": { "description": "The column in which to store the operation result status of the action.", "default": "status_code", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Status Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingSystemColumn": { "description": "The column in which to store the originating system of the event.", "default": "originating_system", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating System Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingContextColumn": { "description": "The column in which to store the originating context of the event.", "default": "originating_context", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating Context Column" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "databaseName" ] }, { "$id": "ignition/audit-profile/edge", "title": "edge", "type": "object" }, { "$id": "ignition/audit-profile/local", "title": "local", "type": "object" }, { "$id": "ignition/audit-profile/remote", "title": "remote", "type": "object", "properties": { "targetSystem": { "description": "The remote system to send audit events to over the Gateway Network.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target System *" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "description": "The audit profile on the remote system to log events into.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target Profile *" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, audit events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote Gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "The maximum number of data points that can be sent per request. This value is used in conjunction with the store and forward settings to dictate how much data is sent at once. 0=unlimited", "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "targetSystem", "targetProfile" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/database-connection/{name}": { "get": { "tags": [ "config-databases" ], "summary": "Get Database Connection Config", "description": "Retrieve configuration details about a specific Database Connection resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "driver": { "type": "string", "x-ignition-non-secret": false }, "translator": { "type": "string", "x-ignition-non-secret": false }, "includeSchemaInTableName": { "type": "boolean", "x-ignition-non-secret": false }, "connectURL": { "type": "string", "x-ignition-non-secret": false }, "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "connectionProps": { "type": "string", "x-ignition-non-secret": false }, "connectionResetParams": { "type": "string", "x-ignition-non-secret": false }, "defaultTransactionLevel": { "type": "string", "enum": [ "DEFAULT", "READ_UNCOMMITTED", "READ_COMMITTED", "READ_REPEATABLE_READ", "SERIALIZABLE" ], "x-ignition-non-secret": false }, "poolInitSize": { "type": "number", "x-ignition-non-secret": false }, "poolMaxActive": { "type": "number", "x-ignition-non-secret": false }, "poolMaxIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMinIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMaxWait": { "type": "number", "x-ignition-non-secret": false }, "validationQuery": { "type": "string", "x-ignition-non-secret": false }, "testOnBorrow": { "type": "boolean", "x-ignition-non-secret": false }, "testOnReturn": { "type": "boolean", "x-ignition-non-secret": false }, "testWhileIdle": { "type": "boolean", "x-ignition-non-secret": false }, "evictionRate": { "type": "number", "x-ignition-non-secret": false }, "evictionTests": { "type": "number", "x-ignition-non-secret": false }, "evictionTime": { "type": "number", "x-ignition-non-secret": false }, "failoverProfile": { "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "type": "string", "enum": [ "STANDARD", "STICKY" ], "x-ignition-non-secret": false }, "slowQueryLogThreshold": { "type": "number", "x-ignition-non-secret": false }, "validationSleepTime": { "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "driver": { "type": "string", "x-ignition-non-secret": false }, "translator": { "type": "string", "x-ignition-non-secret": false }, "includeSchemaInTableName": { "type": "boolean", "x-ignition-non-secret": false }, "connectURL": { "type": "string", "x-ignition-non-secret": false }, "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "connectionProps": { "type": "string", "x-ignition-non-secret": false }, "connectionResetParams": { "type": "string", "x-ignition-non-secret": false }, "defaultTransactionLevel": { "type": "string", "enum": [ "DEFAULT", "READ_UNCOMMITTED", "READ_COMMITTED", "READ_REPEATABLE_READ", "SERIALIZABLE" ], "x-ignition-non-secret": false }, "poolInitSize": { "type": "number", "x-ignition-non-secret": false }, "poolMaxActive": { "type": "number", "x-ignition-non-secret": false }, "poolMaxIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMinIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMaxWait": { "type": "number", "x-ignition-non-secret": false }, "validationQuery": { "type": "string", "x-ignition-non-secret": false }, "testOnBorrow": { "type": "boolean", "x-ignition-non-secret": false }, "testOnReturn": { "type": "boolean", "x-ignition-non-secret": false }, "testWhileIdle": { "type": "boolean", "x-ignition-non-secret": false }, "evictionRate": { "type": "number", "x-ignition-non-secret": false }, "evictionTests": { "type": "number", "x-ignition-non-secret": false }, "evictionTime": { "type": "number", "x-ignition-non-secret": false }, "failoverProfile": { "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "type": "string", "enum": [ "STANDARD", "STICKY" ], "x-ignition-non-secret": false }, "slowQueryLogThreshold": { "type": "number", "x-ignition-non-secret": false }, "validationSleepTime": { "type": "number", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "metrics": { "type": "object", "description": "The metrics of the resource instance.", "properties": { "throughput": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "queries": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "rows": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "active-connections": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "active-queries": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "expensive-queries": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/database-driver/{name}": { "get": { "tags": [ "config-databases" ], "summary": "Get JDBC Driver Config", "description": "Retrieve configuration details about a specific JDBC Driver resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "MYSQL", "POSTGRES", "MSSQL", "GENERIC", "ORACLE", "DB2", "FIREBIRD", "SQLITE" ], "x-ignition-non-secret": false }, "defaultTranslator": { "type": "string", "x-ignition-non-secret": false }, "classname": { "type": "string", "x-ignition-non-secret": false }, "urlFormat": { "type": "string", "x-ignition-non-secret": false }, "urlInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultProps": { "type": "string", "x-ignition-non-secret": false }, "defaultPropInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultValidationQuery": { "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "MYSQL", "POSTGRES", "MSSQL", "GENERIC", "ORACLE", "DB2", "FIREBIRD", "SQLITE" ], "x-ignition-non-secret": false }, "defaultTranslator": { "type": "string", "x-ignition-non-secret": false }, "classname": { "type": "string", "x-ignition-non-secret": false }, "urlFormat": { "type": "string", "x-ignition-non-secret": false }, "urlInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultProps": { "type": "string", "x-ignition-non-secret": false }, "defaultPropInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultValidationQuery": { "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/database-translator/{name}": { "get": { "tags": [ "config-databases" ], "summary": "Get Database Translator Config", "description": "Retrieve configuration details about a specific Database Translator resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "createTable": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncSequence": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncTrigger": { "type": "string", "x-ignition-non-secret": false }, "createIndex": { "type": "string", "x-ignition-non-secret": false }, "autoIncTypeDef": { "type": "string", "x-ignition-non-secret": false }, "alterTable": { "type": "string", "x-ignition-non-secret": false }, "alterTableColumnDef": { "type": "string", "x-ignition-non-secret": false }, "primaryKeyDef": { "type": "string", "x-ignition-non-secret": true }, "limit": { "type": "string", "x-ignition-non-secret": false }, "limitClausePosition": { "type": "string", "enum": [ "Front", "Back", "Where", "Wrap" ], "x-ignition-non-secret": false }, "currentTimeQuery": { "type": "string", "x-ignition-non-secret": false }, "columnQuoteChar": { "type": "string", "x-ignition-non-secret": false }, "supportsRGK": { "type": "boolean", "x-ignition-non-secret": false }, "fetchKeyQuery": { "type": "string", "x-ignition-non-secret": true }, "tableListFilter": { "type": "string", "x-ignition-non-secret": false }, "i1Type": { "type": "string", "x-ignition-non-secret": false }, "i2Type": { "type": "string", "x-ignition-non-secret": false }, "i4Type": { "type": "string", "x-ignition-non-secret": false }, "i8Type": { "type": "string", "x-ignition-non-secret": false }, "boolType": { "type": "string", "x-ignition-non-secret": false }, "datetimeType": { "type": "string", "x-ignition-non-secret": false }, "r4Type": { "type": "string", "x-ignition-non-secret": false }, "r8Type": { "type": "string", "x-ignition-non-secret": false }, "stringType": { "type": "string", "x-ignition-non-secret": false }, "blobType": { "type": "string", "x-ignition-non-secret": false }, "textType": { "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "createTable": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncSequence": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncTrigger": { "type": "string", "x-ignition-non-secret": false }, "createIndex": { "type": "string", "x-ignition-non-secret": false }, "autoIncTypeDef": { "type": "string", "x-ignition-non-secret": false }, "alterTable": { "type": "string", "x-ignition-non-secret": false }, "alterTableColumnDef": { "type": "string", "x-ignition-non-secret": false }, "primaryKeyDef": { "type": "string", "x-ignition-non-secret": true }, "limit": { "type": "string", "x-ignition-non-secret": false }, "limitClausePosition": { "type": "string", "enum": [ "Front", "Back", "Where", "Wrap" ], "x-ignition-non-secret": false }, "currentTimeQuery": { "type": "string", "x-ignition-non-secret": false }, "columnQuoteChar": { "type": "string", "x-ignition-non-secret": false }, "supportsRGK": { "type": "boolean", "x-ignition-non-secret": false }, "fetchKeyQuery": { "type": "string", "x-ignition-non-secret": true }, "tableListFilter": { "type": "string", "x-ignition-non-secret": false }, "i1Type": { "type": "string", "x-ignition-non-secret": false }, "i2Type": { "type": "string", "x-ignition-non-secret": false }, "i4Type": { "type": "string", "x-ignition-non-secret": false }, "i8Type": { "type": "string", "x-ignition-non-secret": false }, "boolType": { "type": "string", "x-ignition-non-secret": false }, "datetimeType": { "type": "string", "x-ignition-non-secret": false }, "r4Type": { "type": "string", "x-ignition-non-secret": false }, "r8Type": { "type": "string", "x-ignition-non-secret": false }, "stringType": { "type": "string", "x-ignition-non-secret": false }, "blobType": { "type": "string", "x-ignition-non-secret": false }, "textType": { "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/email-profile/{name}": { "get": { "tags": [ "config-email-profile" ], "summary": "Get Email Profile Settings Config", "description": "Retrieve configuration details about a specific Email Profile Settings resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "smtp.classic", "smtp.oauth2" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/email-profile/smtp.classic", "title": "smtp.classic", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "SMTP SERVER SETTINGS", "label": "Port" }, "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use SSL/TLS port" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use STARTTLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "The username for logging into the email server.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Username", "isNullable": true }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for logging into the email server.", "x-form": { "fieldType": "SECRET", "category": "SMTP SERVER SETTINGS", "label": "Password *" } } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "default": "TLSv1.2", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "SSL Protocols" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "settings" ] }, { "$id": "ignition/email-profile/smtp.oauth2", "title": "smtp.oauth2", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "oAuth2": { "description": "OAuth2 Settings", "type": "object", "properties": { "username": { "description": "The username that the Gateway will use along with the access token which together make up the credential in the SMTP protocol's XOAUTH2 SASL authentication mechanism.", "type": "string", "x-ignition-non-secret": false }, "oAuth2Client": { "description": "The name of the OAuth2 Client which will be used by this Email Profile to obtain access tokens.", "type": "string", "x-ignition-non-secret": false }, "interactive": { "description": "If enabled, user interaction is required to obtain access and refresh tokens (3-legged OAuth 2.0 flow). If disabled, user interaction is not required to obtain access tokens - the Gateway will obtain access tokens using its own client credentials (2-legged OAuth 2.0 flow).", "type": "boolean", "x-ignition-non-secret": false }, "scope": { "description": "The OAuth 2.0 scope values representing the access token's set of permissions requested by the Gateway.", "type": "array", "items": { "type": "string", "scope": "string" }, "x-ignition-non-secret": false } }, "required": [ "username", "oAuth2Client", "interactive" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advancedOAuth2": { "description": "Advanced OAuth2 Settings", "type": "object", "properties": { "accessTokenTimeout": { "description": "Amount of time in seconds to wait for a valid access token before giving up on sending an email. Values less than or equal to zero will cause the profile to expect a valid access token to be available immediately and will fail fast if one is not available at the time an email needs to be sent.", "type": "number", "x-ignition-non-secret": true }, "defaultAccessTokenExpiration": { "description": "The amount of time in seconds before an access token expires by default. This value only applies for access tokens which do not have an explicit expiration from the authorization server. Values less than or equal to zero means access tokens do not expire by default.", "type": "number", "x-ignition-non-secret": true }, "refreshBeforeExpiration": { "description": "The amount of time in seconds before an access token expires when a new token should be requested. Values less than or equal to zero results in new access token requests exactly when the last access token expires.", "type": "number", "x-ignition-non-secret": false }, "additionalAuthorizationRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 authorization request (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "additionalAuthorizationCodeAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using an authorization code (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalClientCredentialsAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using client credentials (non-interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalRefreshTokenAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using a refresh token (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true } }, "x-ignition-non-secret": false } }, "required": [ "settings", "oAuth2" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "smtp.classic", "smtp.oauth2" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/email-profile/smtp.classic", "title": "smtp.classic", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "SMTP SERVER SETTINGS", "label": "Port" }, "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use SSL/TLS port" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use STARTTLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "The username for logging into the email server.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Username", "isNullable": true }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for logging into the email server.", "x-form": { "fieldType": "SECRET", "category": "SMTP SERVER SETTINGS", "label": "Password *" } } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "default": "TLSv1.2", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "SSL Protocols" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "settings" ] }, { "$id": "ignition/email-profile/smtp.oauth2", "title": "smtp.oauth2", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "oAuth2": { "description": "OAuth2 Settings", "type": "object", "properties": { "username": { "description": "The username that the Gateway will use along with the access token which together make up the credential in the SMTP protocol's XOAUTH2 SASL authentication mechanism.", "type": "string", "x-ignition-non-secret": false }, "oAuth2Client": { "description": "The name of the OAuth2 Client which will be used by this Email Profile to obtain access tokens.", "type": "string", "x-ignition-non-secret": false }, "interactive": { "description": "If enabled, user interaction is required to obtain access and refresh tokens (3-legged OAuth 2.0 flow). If disabled, user interaction is not required to obtain access tokens - the Gateway will obtain access tokens using its own client credentials (2-legged OAuth 2.0 flow).", "type": "boolean", "x-ignition-non-secret": false }, "scope": { "description": "The OAuth 2.0 scope values representing the access token's set of permissions requested by the Gateway.", "type": "array", "items": { "type": "string", "scope": "string" }, "x-ignition-non-secret": false } }, "required": [ "username", "oAuth2Client", "interactive" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advancedOAuth2": { "description": "Advanced OAuth2 Settings", "type": "object", "properties": { "accessTokenTimeout": { "description": "Amount of time in seconds to wait for a valid access token before giving up on sending an email. Values less than or equal to zero will cause the profile to expect a valid access token to be available immediately and will fail fast if one is not available at the time an email needs to be sent.", "type": "number", "x-ignition-non-secret": true }, "defaultAccessTokenExpiration": { "description": "The amount of time in seconds before an access token expires by default. This value only applies for access tokens which do not have an explicit expiration from the authorization server. Values less than or equal to zero means access tokens do not expire by default.", "type": "number", "x-ignition-non-secret": true }, "refreshBeforeExpiration": { "description": "The amount of time in seconds before an access token expires when a new token should be requested. Values less than or equal to zero results in new access token requests exactly when the last access token expires.", "type": "number", "x-ignition-non-secret": false }, "additionalAuthorizationRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 authorization request (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "additionalAuthorizationCodeAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using an authorization code (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalClientCredentialsAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using client credentials (non-interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalRefreshTokenAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using a refresh token (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true } }, "x-ignition-non-secret": false } }, "required": [ "settings", "oAuth2" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/gateway-network-incoming/{name}": { "get": { "tags": [ "config-gateway-network" ], "summary": "Get Incoming Connection Settings Config", "description": "Retrieve configuration details about a specific Incoming Connection Settings resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "connectionId": { "type": "string", "x-ignition-non-secret": false }, "securityStatus": { "type": "string", "enum": [ "PendingApproval", "Approved", "NotOnWhiteList" ], "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "connectionId": { "type": "string", "x-ignition-non-secret": false }, "securityStatus": { "type": "string", "enum": [ "PendingApproval", "Approved", "NotOnWhiteList" ], "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/gateway-network-outgoing/{name}": { "get": { "tags": [ "config-gateway-network" ], "summary": "Get Outgoing Connection Settings Config", "description": "Retrieve configuration details about a specific Outgoing Connection Settings resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "host": { "description": "The address of the remote server, not including the port.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "The port of the remote server.", "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Whether to use SSL for the connection.", "type": "boolean", "x-ignition-non-secret": false }, "pingRateMillis": { "description": "How often, in milliseconds, to send a ping to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "pingTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.", "type": "number", "x-ignition-non-secret": false }, "pingMaxMissed": { "description": "The amount of missed pings that will force the connection to be considered faulted.", "type": "number", "x-ignition-non-secret": false }, "wsTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a new web socket to connect to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to establish an HTTP connection to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to read or send HTTP data to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "sendThreads": { "description": "The maximum number of threads that will be used to upload messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false }, "receiveThreads": { "description": "The maximum number of threads that will be used to download messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "host", "port", "useSSL" ] }, "backupConfig": { "type": "object", "properties": { "host": { "description": "The address of the remote server, not including the port.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "The port of the remote server.", "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Whether to use SSL for the connection.", "type": "boolean", "x-ignition-non-secret": false }, "pingRateMillis": { "description": "How often, in milliseconds, to send a ping to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "pingTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.", "type": "number", "x-ignition-non-secret": false }, "pingMaxMissed": { "description": "The amount of missed pings that will force the connection to be considered faulted.", "type": "number", "x-ignition-non-secret": false }, "wsTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a new web socket to connect to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to establish an HTTP connection to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to read or send HTTP data to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "sendThreads": { "description": "The maximum number of threads that will be used to upload messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false }, "receiveThreads": { "description": "The maximum number of threads that will be used to download messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "host", "port", "useSSL" ] }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/holiday/{name}": { "get": { "tags": [ "config-alarm" ], "summary": "Get Holiday Config", "description": "Retrieve configuration details about a specific Holiday resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "date": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "repeatAnnually": { "type": "boolean", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "date": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "repeatAnnually": { "type": "boolean", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/identity-provider/{name}": { "get": { "tags": [ "config-identity-provider" ], "summary": "Get Identity Provider Config", "description": "Retrieve configuration details about a specific Identity Provider resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal", "oidc", "saml" ] }, "userAttributeMapper": { "type": "object", "properties": { "id": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "ID Attribute Mapper", "description": "Configuration settings for the user ID attribute mapper" }, "userName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Username Attribute Mapper", "description": "Configuration settings for the username attribute mapper" }, "firstName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "First Name Attribute Mapper", "description": "Configuration settings for the first name attribute mapper" }, "lastName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Last Name Attribute Mapper", "description": "Configuration settings for the last name attribute mapper" }, "email": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Email Attribute Mapper", "description": "Configuration settings for the email attribute mapper" }, "roles": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Roles Attribute Mapper", "description": "Configuration settings for the roles attribute mapper" } }, "required": [ "id", "userName" ], "title": "User Attribute Mapper", "description": "Configuration settings for the user attribute mapper" }, "userGrants": { "type": "object", "properties": { "id": { "type": "object", "title": "Grants by ID", "description": "Security levels granted to users matching a specific user ID. The object keys are the user IDs to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "username": { "type": "object", "title": "Grants by Username", "description": "Security levels granted to users matching a specific username. The object keys are the usernames to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } } }, "title": "User Grants", "description": "Configuration settings for the user grants" }, "securityLevelRules": { "type": "object", "properties": { "nodes": { "type": "array", "title": "Nodes", "description": "Configuration settings for each security level rule node", "items": { "$ref": "#/components/schemas/SecurityLevelRuleNode" } } }, "required": [ "nodes" ], "title": "Security Level Rules", "description": "Configuration settings for the security level rules" } }, "required": [ "type", "userAttributeMapper", "userGrants", "securityLevelRules" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/identity-provider/internal", "title": "internal", "type": "object", "properties": { "userSource": { "type": "string", "title": "User Source Profile Name", "description": "The name of the User Source Profile used to authenticate users" }, "authMethods": { "type": "array", "title": "Authentication Methods", "description": "An array of authentication methods in preference order. There must be at least one authentication method in the array. If there are more than one authentication methods in the array, there must not be any duplicate authentication method types (such as two basic or two badge authentication methods).", "items": { "oneOf": [ { "type": "object", "title": "basic", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "basic" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "badge", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "badge" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method.", "properties": { "secretRequired": { "type": "boolean", "title": "Require Secret", "description": "If set to true, the user will be required to provide a secret in addition to their badge scan. If false, the user will only need to scan their badge to successfully authenticate.", "x-ignition-non-secret": true } }, "required": [ "secretRequired" ] } }, "required": [ "type", "config" ] } ] } }, "sessionInactivityTimeout": { "type": "number", "title": "Session Inactivity Timeout", "description": "The number of minutes which must elapse before expiring a session due to user inactivity. Sessions will not timeout if set to any number less than or equal to zero." }, "sessionExp": { "type": "number", "title": "Session Expiration", "description": "The maximum number of minutes a session may exist before it is expired. Sessions will not have a max lifetime if set to any number less than or equal to zero." }, "rememberMeExp": { "type": "number", "title": "Remember Me Expiration", "description": "The maximum number of hours a user will be remembered if they elect to be remembered. Remember Me is disabled when this value is set to any number less than or equal to zero." } }, "required": [ "userSource", "authMethods", "sessionInactivityTimeout", "sessionExp", "rememberMeExp" ] }, { "$id": "ignition/identity-provider/oidc", "title": "oidc", "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the identity provider." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the identity provider.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationEndpoint": { "type": "string", "title": "Authorization URL", "description": "URL of the OP's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the OP on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenEndpoint": { "type": "string", "title": "Token URL", "description": "URL of the OP's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "endSessionEndpoint": { "type": "string", "title": "Logout URL", "description": "URL at the OP to which an RP can perform a redirect to request that the End-User be logged out at the OP." }, "jsonWebKeysEndpoint": { "type": "string", "title": "JSON Web Keys URL", "description": "URL of the OP's JSON Web Key Set document.", "x-ignition-non-secret": true }, "jsonWebKeysEndpointEnabled": { "type": "boolean", "title": "Enable JSON Web Keys URL", "description": "If true, then identity provider public keys will be automatically downloaded from the Json Web Keys URL if it is set. New keys will be automatically fetched when the identity provider generates new keys. If false, then the Provider Keys setting is used, so when the identity provider rotates keys, they must be manually added to this configuration.", "x-ignition-non-secret": true }, "userInfoEndpoint": { "type": "string", "title": "User Info URL", "description": "URL to retrieve UserInfo claims from the provider." }, "userInfoRequestMethod": { "type": "string", "title": "User Info Request Method", "description": "The HTTP method used for sending User Info API requests to the User Info URL.", "enum": [ "GET", "POST" ] }, "providerId": { "type": "string", "title": "Provider ID", "description": "The value that the OP sets as the \"iss\" (issuer) claim for claim sets that originate from the OP. It is also the value that Ignition sets as the \"aud\" (audience) claim for claim sets that originate from this Ignition client intended for the OP's consumption." }, "providerKeys": { "type": "array", "title": "Provider Keys", "description": "A list of trusted JSON Web Keys provided by the OP. Ignition uses these keys to validate data signed by the OP and to encrypt data to the OP.", "x-ignition-non-secret": true, "items": { "oneOf": [ { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "EC" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "The \"crv\" (curve) parameter identifies the cryptographic curve used with the key.", "enum": [ "P-256", "P-384", "P-521", "secp256k1" ] }, "x": { "type": "string", "title": "X Coordinate", "description": "The \"x\" (x coordinate) parameter contains the x coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." }, "y": { "type": "string", "title": "Y Coordinate", "description": "The \"y\" (y coordinate) parameter contains the y coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." } }, "required": [ "kty", "crv", "x" ], "title": "Public Elliptic Curve Key", "description": "JSON Web Key encoding of a Public Elliptic Curve key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "RSA" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "n": { "type": "string", "title": "Modulus", "description": "The \"n\" (modulus) parameter contains the modulus value for the RSA public key. It is represented as a Base64urlUInt-encoded value." }, "e": { "type": "string", "title": "Exponent", "description": "The \"e\" (exponent) parameter contains the exponent value for the RSA public key. It is represented as a Base64urlUInt-encoded value." } }, "required": [ "kty", "n", "e" ], "title": "Public RSA Key", "description": "JSON Web Key encoding of a Public RSA key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "OKP" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "Key subtype.", "enum": [ "Ed25519", "Ed448", "X25519", "X448" ] }, "x": { "type": "string", "title": "Public Key", "description": "The public key encoded using the base64url [RFC4648] encoding." } }, "required": [ "kty", "crv", "x" ], "title": "Public Octet Key Pair", "description": "Public JSON Web Key encoding for public key algorithms that use octet strings as private and public keys." } ] } }, "allowedIdTokenSigningAlgorithms": { "type": "array", "title": "Allowed ID Token Signing Algorithms", "description": "The list of JWS algorithms that Ignition will allow the OP to use for signing ID tokens. Warning: allowing a value of \"none\" could allow a malicious user to forge ID tokens, and Ignition will be unable to distinguish between an authentic ID token issued by the OP and a forged ID token issued by the malicious user. Therefore, it is recommended never to allow \"none\".", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES256K", "EdDSA", "PS256", "PS384", "PS512" ] } }, "scope": { "type": "array", "title": "Scope", "description": "A list of default scopes which will be sent for each authorization request to the OP.", "items": { "type": "string" } } }, "required": [ "clientId", "clientSecret", "authorizationEndpoint", "tokenEndpoint", "jsonWebKeysEndpointEnabled", "userInfoRequestMethod", "providerId", "providerKeys", "allowedIdTokenSigningAlgorithms", "scope" ] }, { "$id": "ignition/identity-provider/saml", "title": "saml", "type": "object", "properties": { "idpEntityId": { "type": "string", "title": "IdP Entity ID", "description": "The Identity Provider's Entity ID." }, "spEntityId": { "type": "string", "title": "SP Entity ID", "description": "The Service Provider's Entity ID. In this case, the Service Provider is the current Ignition Gateway." }, "spEntityIdEnabled": { "type": "boolean", "title": "Enable SP Entity ID", "description": "True if the SP Entity ID setting should be used. False to automatically generate the SP Entity ID based on the hostname that the client uses to connect to this Gateway." }, "acsBinding": { "type": "string", "title": "ACS Binding", "description": "The expected binding used by the Identity Provider when interacting with Ignition's Assertion Consumer Service.", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] }, "nameIdFormat": { "type": "string", "title": "Name ID Format", "description": "The expected name ID format for subjects of assertions resulting from Authn Requests.", "enum": [ "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName", "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName", "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos", "urn:oasis:names:tc:SAML:2.0:nameid-format:entity", "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "urn:oasis:names:tc:SAML:2.0:nameid-format:transient" ] }, "ssoServiceConfig": { "type": "object", "properties": { "uri": { "type": "string", "title": "Service URL", "description": "The URL to the service", "examples": [ "https://test.local:8043/saml/sso" ] }, "binding": { "type": "string", "title": "Service Binding", "description": "The Binding for the service", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] } }, "required": [ "uri", "binding" ], "title": "SSO Service Config", "description": "The Identity Provider's Single Sign-On (SSO) Service Configuration." }, "forceAuthnEnabled": { "type": "boolean", "title": "Force Authn", "description": "Setting this value to true will force complying Identity Providers to authenticate the user each time instead of relying on a previous security context. See section 3.4.1 of saml-core-2.0-os for more details." }, "responseSignaturesRequired": { "type": "boolean", "title": "Require Response Signatures", "description": "If true, the Gateway will require each Identity Provider Response to have a valid signature. Warning: if both this value and the 'Require Assertion Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "assertionSignaturesRequired": { "type": "boolean", "title": "Require Assertion Signatures", "description": "If true, the Gateway will require each Identity Provider Assertion to have a valid signature. Warning: if both this value and the 'Require Response Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "idpMetadataUrl": { "type": "string", "title": "IdP Metadata URL", "description": "URL to the SAML Identity Provider Metadata document.", "examples": [ "https://test.local:8043/saml/metadata" ] }, "idpMetadataUrlEnabled": { "type": "boolean", "title": "Enable IdP Metadata URL", "description": "If true, and if the IdP Metadata URL is specified, the Identity Provider's signature verifying keys and certificates will be automatically downloaded from IdP metadata URL. New keys and certificates will be automatically fetched when the Identity Provider generates them. If unchecked, then the static set of keys and certificates embedded in this configuration are used, so when the identity provider rotates them, they must be manually added to this configuration." }, "signatureVerifyingCertificates": { "type": "array", "title": "Signature Verifying Certificates", "description": "An array of signing certificates that Ignition uses to validate signatures from the IdP. Each array entry is a base64-encoded DER-encoding of an X.509 key.", "items": { "type": "string", "contentEncoding": "base64", "title": "Certificate", "description": "A base64-encoded DER-encoding of an X.509 certificate." } }, "signatureVerifyingKeys": { "type": "array", "title": "Signature Verifying Keys", "description": "An array of signing keys that Ignition uses to validate signatures from the IdP.", "x-ignition-non-secret": true, "items": { "type": "object", "properties": { "alg": { "type": "string", "title": "Algorithm", "description": "The algorithm identifier for this signature verifying key." }, "key": { "type": "string", "contentEncoding": "base64", "title": "Key", "description": "A base64-encoded DER-encoding of an X.509 key.", "x-ignition-non-secret": true } }, "required": [ "alg", "key" ] } } }, "required": [ "idpEntityId", "spEntityIdEnabled", "acsBinding", "nameIdFormat", "ssoServiceConfig", "forceAuthnEnabled", "responseSignaturesRequired", "assertionSignaturesRequired", "idpMetadataUrlEnabled", "signatureVerifyingCertificates", "signatureVerifyingKeys" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal", "oidc", "saml" ] }, "userAttributeMapper": { "type": "object", "properties": { "id": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "ID Attribute Mapper", "description": "Configuration settings for the user ID attribute mapper" }, "userName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Username Attribute Mapper", "description": "Configuration settings for the username attribute mapper" }, "firstName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "First Name Attribute Mapper", "description": "Configuration settings for the first name attribute mapper" }, "lastName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Last Name Attribute Mapper", "description": "Configuration settings for the last name attribute mapper" }, "email": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Email Attribute Mapper", "description": "Configuration settings for the email attribute mapper" }, "roles": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Roles Attribute Mapper", "description": "Configuration settings for the roles attribute mapper" } }, "required": [ "id", "userName" ], "title": "User Attribute Mapper", "description": "Configuration settings for the user attribute mapper" }, "userGrants": { "type": "object", "properties": { "id": { "type": "object", "title": "Grants by ID", "description": "Security levels granted to users matching a specific user ID. The object keys are the user IDs to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "username": { "type": "object", "title": "Grants by Username", "description": "Security levels granted to users matching a specific username. The object keys are the usernames to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } } }, "title": "User Grants", "description": "Configuration settings for the user grants" }, "securityLevelRules": { "type": "object", "properties": { "nodes": { "type": "array", "title": "Nodes", "description": "Configuration settings for each security level rule node", "items": { "$ref": "#/components/schemas/SecurityLevelRuleNode" } } }, "required": [ "nodes" ], "title": "Security Level Rules", "description": "Configuration settings for the security level rules" } }, "required": [ "type", "userAttributeMapper", "userGrants", "securityLevelRules" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/identity-provider/internal", "title": "internal", "type": "object", "properties": { "userSource": { "type": "string", "title": "User Source Profile Name", "description": "The name of the User Source Profile used to authenticate users" }, "authMethods": { "type": "array", "title": "Authentication Methods", "description": "An array of authentication methods in preference order. There must be at least one authentication method in the array. If there are more than one authentication methods in the array, there must not be any duplicate authentication method types (such as two basic or two badge authentication methods).", "items": { "oneOf": [ { "type": "object", "title": "basic", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "basic" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "badge", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "badge" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method.", "properties": { "secretRequired": { "type": "boolean", "title": "Require Secret", "description": "If set to true, the user will be required to provide a secret in addition to their badge scan. If false, the user will only need to scan their badge to successfully authenticate.", "x-ignition-non-secret": true } }, "required": [ "secretRequired" ] } }, "required": [ "type", "config" ] } ] } }, "sessionInactivityTimeout": { "type": "number", "title": "Session Inactivity Timeout", "description": "The number of minutes which must elapse before expiring a session due to user inactivity. Sessions will not timeout if set to any number less than or equal to zero." }, "sessionExp": { "type": "number", "title": "Session Expiration", "description": "The maximum number of minutes a session may exist before it is expired. Sessions will not have a max lifetime if set to any number less than or equal to zero." }, "rememberMeExp": { "type": "number", "title": "Remember Me Expiration", "description": "The maximum number of hours a user will be remembered if they elect to be remembered. Remember Me is disabled when this value is set to any number less than or equal to zero." } }, "required": [ "userSource", "authMethods", "sessionInactivityTimeout", "sessionExp", "rememberMeExp" ] }, { "$id": "ignition/identity-provider/oidc", "title": "oidc", "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the identity provider." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the identity provider.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationEndpoint": { "type": "string", "title": "Authorization URL", "description": "URL of the OP's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the OP on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenEndpoint": { "type": "string", "title": "Token URL", "description": "URL of the OP's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "endSessionEndpoint": { "type": "string", "title": "Logout URL", "description": "URL at the OP to which an RP can perform a redirect to request that the End-User be logged out at the OP." }, "jsonWebKeysEndpoint": { "type": "string", "title": "JSON Web Keys URL", "description": "URL of the OP's JSON Web Key Set document.", "x-ignition-non-secret": true }, "jsonWebKeysEndpointEnabled": { "type": "boolean", "title": "Enable JSON Web Keys URL", "description": "If true, then identity provider public keys will be automatically downloaded from the Json Web Keys URL if it is set. New keys will be automatically fetched when the identity provider generates new keys. If false, then the Provider Keys setting is used, so when the identity provider rotates keys, they must be manually added to this configuration.", "x-ignition-non-secret": true }, "userInfoEndpoint": { "type": "string", "title": "User Info URL", "description": "URL to retrieve UserInfo claims from the provider." }, "userInfoRequestMethod": { "type": "string", "title": "User Info Request Method", "description": "The HTTP method used for sending User Info API requests to the User Info URL.", "enum": [ "GET", "POST" ] }, "providerId": { "type": "string", "title": "Provider ID", "description": "The value that the OP sets as the \"iss\" (issuer) claim for claim sets that originate from the OP. It is also the value that Ignition sets as the \"aud\" (audience) claim for claim sets that originate from this Ignition client intended for the OP's consumption." }, "providerKeys": { "type": "array", "title": "Provider Keys", "description": "A list of trusted JSON Web Keys provided by the OP. Ignition uses these keys to validate data signed by the OP and to encrypt data to the OP.", "x-ignition-non-secret": true, "items": { "oneOf": [ { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "EC" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "The \"crv\" (curve) parameter identifies the cryptographic curve used with the key.", "enum": [ "P-256", "P-384", "P-521", "secp256k1" ] }, "x": { "type": "string", "title": "X Coordinate", "description": "The \"x\" (x coordinate) parameter contains the x coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." }, "y": { "type": "string", "title": "Y Coordinate", "description": "The \"y\" (y coordinate) parameter contains the y coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." } }, "required": [ "kty", "crv", "x" ], "title": "Public Elliptic Curve Key", "description": "JSON Web Key encoding of a Public Elliptic Curve key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "RSA" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "n": { "type": "string", "title": "Modulus", "description": "The \"n\" (modulus) parameter contains the modulus value for the RSA public key. It is represented as a Base64urlUInt-encoded value." }, "e": { "type": "string", "title": "Exponent", "description": "The \"e\" (exponent) parameter contains the exponent value for the RSA public key. It is represented as a Base64urlUInt-encoded value." } }, "required": [ "kty", "n", "e" ], "title": "Public RSA Key", "description": "JSON Web Key encoding of a Public RSA key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "OKP" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "Key subtype.", "enum": [ "Ed25519", "Ed448", "X25519", "X448" ] }, "x": { "type": "string", "title": "Public Key", "description": "The public key encoded using the base64url [RFC4648] encoding." } }, "required": [ "kty", "crv", "x" ], "title": "Public Octet Key Pair", "description": "Public JSON Web Key encoding for public key algorithms that use octet strings as private and public keys." } ] } }, "allowedIdTokenSigningAlgorithms": { "type": "array", "title": "Allowed ID Token Signing Algorithms", "description": "The list of JWS algorithms that Ignition will allow the OP to use for signing ID tokens. Warning: allowing a value of \"none\" could allow a malicious user to forge ID tokens, and Ignition will be unable to distinguish between an authentic ID token issued by the OP and a forged ID token issued by the malicious user. Therefore, it is recommended never to allow \"none\".", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES256K", "EdDSA", "PS256", "PS384", "PS512" ] } }, "scope": { "type": "array", "title": "Scope", "description": "A list of default scopes which will be sent for each authorization request to the OP.", "items": { "type": "string" } } }, "required": [ "clientId", "clientSecret", "authorizationEndpoint", "tokenEndpoint", "jsonWebKeysEndpointEnabled", "userInfoRequestMethod", "providerId", "providerKeys", "allowedIdTokenSigningAlgorithms", "scope" ] }, { "$id": "ignition/identity-provider/saml", "title": "saml", "type": "object", "properties": { "idpEntityId": { "type": "string", "title": "IdP Entity ID", "description": "The Identity Provider's Entity ID." }, "spEntityId": { "type": "string", "title": "SP Entity ID", "description": "The Service Provider's Entity ID. In this case, the Service Provider is the current Ignition Gateway." }, "spEntityIdEnabled": { "type": "boolean", "title": "Enable SP Entity ID", "description": "True if the SP Entity ID setting should be used. False to automatically generate the SP Entity ID based on the hostname that the client uses to connect to this Gateway." }, "acsBinding": { "type": "string", "title": "ACS Binding", "description": "The expected binding used by the Identity Provider when interacting with Ignition's Assertion Consumer Service.", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] }, "nameIdFormat": { "type": "string", "title": "Name ID Format", "description": "The expected name ID format for subjects of assertions resulting from Authn Requests.", "enum": [ "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName", "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName", "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos", "urn:oasis:names:tc:SAML:2.0:nameid-format:entity", "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "urn:oasis:names:tc:SAML:2.0:nameid-format:transient" ] }, "ssoServiceConfig": { "type": "object", "properties": { "uri": { "type": "string", "title": "Service URL", "description": "The URL to the service", "examples": [ "https://test.local:8043/saml/sso" ] }, "binding": { "type": "string", "title": "Service Binding", "description": "The Binding for the service", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] } }, "required": [ "uri", "binding" ], "title": "SSO Service Config", "description": "The Identity Provider's Single Sign-On (SSO) Service Configuration." }, "forceAuthnEnabled": { "type": "boolean", "title": "Force Authn", "description": "Setting this value to true will force complying Identity Providers to authenticate the user each time instead of relying on a previous security context. See section 3.4.1 of saml-core-2.0-os for more details." }, "responseSignaturesRequired": { "type": "boolean", "title": "Require Response Signatures", "description": "If true, the Gateway will require each Identity Provider Response to have a valid signature. Warning: if both this value and the 'Require Assertion Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "assertionSignaturesRequired": { "type": "boolean", "title": "Require Assertion Signatures", "description": "If true, the Gateway will require each Identity Provider Assertion to have a valid signature. Warning: if both this value and the 'Require Response Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "idpMetadataUrl": { "type": "string", "title": "IdP Metadata URL", "description": "URL to the SAML Identity Provider Metadata document.", "examples": [ "https://test.local:8043/saml/metadata" ] }, "idpMetadataUrlEnabled": { "type": "boolean", "title": "Enable IdP Metadata URL", "description": "If true, and if the IdP Metadata URL is specified, the Identity Provider's signature verifying keys and certificates will be automatically downloaded from IdP metadata URL. New keys and certificates will be automatically fetched when the Identity Provider generates them. If unchecked, then the static set of keys and certificates embedded in this configuration are used, so when the identity provider rotates them, they must be manually added to this configuration." }, "signatureVerifyingCertificates": { "type": "array", "title": "Signature Verifying Certificates", "description": "An array of signing certificates that Ignition uses to validate signatures from the IdP. Each array entry is a base64-encoded DER-encoding of an X.509 key.", "items": { "type": "string", "contentEncoding": "base64", "title": "Certificate", "description": "A base64-encoded DER-encoding of an X.509 certificate." } }, "signatureVerifyingKeys": { "type": "array", "title": "Signature Verifying Keys", "description": "An array of signing keys that Ignition uses to validate signatures from the IdP.", "x-ignition-non-secret": true, "items": { "type": "object", "properties": { "alg": { "type": "string", "title": "Algorithm", "description": "The algorithm identifier for this signature verifying key." }, "key": { "type": "string", "contentEncoding": "base64", "title": "Key", "description": "A base64-encoded DER-encoding of an X.509 key.", "x-ignition-non-secret": true } }, "required": [ "alg", "key" ] } } }, "required": [ "idpEntityId", "spEntityIdEnabled", "acsBinding", "nameIdFormat", "ssoServiceConfig", "forceAuthnEnabled", "responseSignaturesRequired", "assertionSignaturesRequired", "idpMetadataUrlEnabled", "signatureVerifyingCertificates", "signatureVerifyingKeys" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/keyboard_layout/{name}": { "get": { "tags": [ "config-keyboard-layouts" ], "summary": "Get Keyboard Layouts Config", "description": "Retrieve configuration details about a specific Keyboard Layouts resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "$defs": { "key": { "oneOf": [ { "additionalProperties": false, "example": { "lowercase": "a", "uppercase": "A" }, "properties": { "lowercase": { "$ref": "#/$defs/keyVariant" }, "uppercase": { "$ref": "#/$defs/keyVariant" } }, "required": [ "lowercase" ], "type": "object" }, { "description": "Use one of the specific enum values to add a system key before or after the keys on this row.", "enum": [ "BACKSPACE", "SUBMIT", "SHIFT", "CANCEL", "CAPSLOCK", "NUMERIC_LAYOUT" ], "example": "SHIFT", "type": "string" } ] }, "keyVariant": { "oneOf": [ { "type": [ "string", "number" ] }, { "additionalProperties": false, "properties": { "accents": { "description": "Variants of this key to add after long press or the hold key is toggled.", "items": { "type": "string" }, "type": "array" }, "alias": { "description": "An alternate presentation string for this key.", "type": [ "string", "null" ] }, "character": { "description": "The actual character (sequence) to submit when this key is pressed.", "type": [ "string", "number" ] } }, "required": [ "character" ], "type": "object" } ] } }, "additionalProperties": false, "properties": { "alias": { "description": "A short (2-3 character) string to identify this keyboard, to present on the language selector button", "type": "string" }, "id": { "description": "A fixed UUID for the keyboard layout.", "type": "string" }, "labels": { "additionalProperties": false, "default": { "BACKSPACE": "Backsp", "CANCEL": "Cancel", "SHIFT": "Shift", "SPACE": "Space", "SUBMIT": "Enter" }, "description": "Localized strings to change the text on various system keys", "properties": { "ALPHABET_LAYOUT": { "default": "ABC", "description": "A short string to display while in numeric entry mode, indicating the switch back to standard entry mode.", "type": "string" }, "BACKSPACE": { "default": "Backsp", "type": "string" }, "CANCEL": { "default": "Cancel", "type": "string" }, "CAPSLOCK": { "default": "CAPS", "type": "string" }, "NUMERIC_LAYOUT": { "default": "!123", "description": "A short string to display while in normal entry mode, indicating the switch to numeric/symbols entry mode.", "type": "string" }, "SHIFT": { "default": "Shift", "type": "string" }, "SPACE": { "default": "Space", "type": "string" }, "SUBMIT": { "default": "Enter", "type": "string" } }, "type": "object" }, "name": { "description": "The name of this keyboard layout.", "pattern": "^[a-zA-Z][a-zA-Z0-9_]+$", "type": "string" }, "rows": { "items": { "example": [ { "lowercase": "q", "uppercase": "Q" }, { "lowercase": "w", "uppercase": "W" }, { "lowercase": { "accents": [ "\u00e8", "\u00e9", "\u00ea", "\u00eb", "\u0115" ], "character": "e" }, "uppercase": { "accents": [ "\u00c8", "\u00c9", "\u00ca", "\u00cb", "\u0114" ], "character": "E" } }, { "lowercase": "r", "uppercase": "R" }, { "lowercase": "t", "uppercase": "T" }, { "lowercase": "y", "uppercase": "Y" }, { "lowercase": { "accents": [ "\u00f9", "\u00fa", "\u00fb", "\u00fc", "\u0169" ], "character": "u" }, "uppercase": { "accents": [ "\u00d9", "\u00da", "\u00db", "\u00dc", "\u0168" ], "character": "U" } }, { "lowercase": { "accents": [ "\u00ec", "\u00ed", "\u00ee", "\u00ef", "\u0129" ], "character": "i" }, "uppercase": { "accents": [ "\u00cc", "\u00cd", "\u00ce", "\u00cf", "\u0128" ], "character": "I" } }, { "lowercase": { "accents": [ "\u00f2", "\u00f3", "\u00f4", "\u00f5", "\u00f6" ], "character": "o" }, "uppercase": { "accents": [ "\u00d2", "\u00d3", "\u00d4", "\u00d5", "\u00d6" ], "character": "O" } }, { "lowercase": "p", "uppercase": "P" }, "BACKSPACE" ], "items": { "$ref": "#/$defs/key" }, "type": "array" }, "type": "array" }, "supportedLanguages": { "description": "An array of IETF language tags representing the languages this keyboard layout supports.", "items": { "suggestions": { "Arabic": "ar", "Czech": "cs", "Danish": "da", "Dutch": "nl", "English": "en", "French": "fr", "German": "de", "Greek": "el", "Hungarian": "hu", "Italian": "it", "Polish": "pl", "Portuguese": "pt", "Russian": "ru", "Spanish": "es" }, "type": "string" }, "type": "array" }, "title": { "description": "The string to present to the end user when selecting this layout.", "type": "string" } }, "required": [ "id", "name", "title", "alias", "rows" ], "type": "object" }, "backupConfig": { "$defs": { "key": { "oneOf": [ { "additionalProperties": false, "example": { "lowercase": "a", "uppercase": "A" }, "properties": { "lowercase": { "$ref": "#/$defs/keyVariant" }, "uppercase": { "$ref": "#/$defs/keyVariant" } }, "required": [ "lowercase" ], "type": "object" }, { "description": "Use one of the specific enum values to add a system key before or after the keys on this row.", "enum": [ "BACKSPACE", "SUBMIT", "SHIFT", "CANCEL", "CAPSLOCK", "NUMERIC_LAYOUT" ], "example": "SHIFT", "type": "string" } ] }, "keyVariant": { "oneOf": [ { "type": [ "string", "number" ] }, { "additionalProperties": false, "properties": { "accents": { "description": "Variants of this key to add after long press or the hold key is toggled.", "items": { "type": "string" }, "type": "array" }, "alias": { "description": "An alternate presentation string for this key.", "type": [ "string", "null" ] }, "character": { "description": "The actual character (sequence) to submit when this key is pressed.", "type": [ "string", "number" ] } }, "required": [ "character" ], "type": "object" } ] } }, "additionalProperties": false, "properties": { "alias": { "description": "A short (2-3 character) string to identify this keyboard, to present on the language selector button", "type": "string" }, "id": { "description": "A fixed UUID for the keyboard layout.", "type": "string" }, "labels": { "additionalProperties": false, "default": { "BACKSPACE": "Backsp", "CANCEL": "Cancel", "SHIFT": "Shift", "SPACE": "Space", "SUBMIT": "Enter" }, "description": "Localized strings to change the text on various system keys", "properties": { "ALPHABET_LAYOUT": { "default": "ABC", "description": "A short string to display while in numeric entry mode, indicating the switch back to standard entry mode.", "type": "string" }, "BACKSPACE": { "default": "Backsp", "type": "string" }, "CANCEL": { "default": "Cancel", "type": "string" }, "CAPSLOCK": { "default": "CAPS", "type": "string" }, "NUMERIC_LAYOUT": { "default": "!123", "description": "A short string to display while in normal entry mode, indicating the switch to numeric/symbols entry mode.", "type": "string" }, "SHIFT": { "default": "Shift", "type": "string" }, "SPACE": { "default": "Space", "type": "string" }, "SUBMIT": { "default": "Enter", "type": "string" } }, "type": "object" }, "name": { "description": "The name of this keyboard layout.", "pattern": "^[a-zA-Z][a-zA-Z0-9_]+$", "type": "string" }, "rows": { "items": { "example": [ { "lowercase": "q", "uppercase": "Q" }, { "lowercase": "w", "uppercase": "W" }, { "lowercase": { "accents": [ "\u00e8", "\u00e9", "\u00ea", "\u00eb", "\u0115" ], "character": "e" }, "uppercase": { "accents": [ "\u00c8", "\u00c9", "\u00ca", "\u00cb", "\u0114" ], "character": "E" } }, { "lowercase": "r", "uppercase": "R" }, { "lowercase": "t", "uppercase": "T" }, { "lowercase": "y", "uppercase": "Y" }, { "lowercase": { "accents": [ "\u00f9", "\u00fa", "\u00fb", "\u00fc", "\u0169" ], "character": "u" }, "uppercase": { "accents": [ "\u00d9", "\u00da", "\u00db", "\u00dc", "\u0168" ], "character": "U" } }, { "lowercase": { "accents": [ "\u00ec", "\u00ed", "\u00ee", "\u00ef", "\u0129" ], "character": "i" }, "uppercase": { "accents": [ "\u00cc", "\u00cd", "\u00ce", "\u00cf", "\u0128" ], "character": "I" } }, { "lowercase": { "accents": [ "\u00f2", "\u00f3", "\u00f4", "\u00f5", "\u00f6" ], "character": "o" }, "uppercase": { "accents": [ "\u00d2", "\u00d3", "\u00d4", "\u00d5", "\u00d6" ], "character": "O" } }, { "lowercase": "p", "uppercase": "P" }, "BACKSPACE" ], "items": { "$ref": "#/$defs/key" }, "type": "array" }, "type": "array" }, "supportedLanguages": { "description": "An array of IETF language tags representing the languages this keyboard layout supports.", "items": { "suggestions": { "Arabic": "ar", "Czech": "cs", "Danish": "da", "Dutch": "nl", "English": "en", "French": "fr", "German": "de", "Greek": "el", "Hungarian": "hu", "Italian": "it", "Polish": "pl", "Portuguese": "pt", "Russian": "ru", "Spanish": "es" }, "type": "string" }, "type": "array" }, "title": { "description": "The string to present to the end user when selecting this layout.", "type": "string" } }, "required": [ "id", "name", "title", "alias", "rows" ], "type": "object" }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/metrics-dashboard/{name}": { "get": { "tags": [ "config-metrics-dashboard" ], "summary": "Get Metrics Dashboard Config", "description": "Retrieve configuration details about a specific Metrics Dashboard resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "grid": { "description": "The grid layout of the dashboard", "type": "object", "properties": { "rows": { "description": "The number of rows in the grid", "type": "number", "x-ignition-non-secret": false }, "columns": { "description": "The number of columns in the grid", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "widgets": { "description": "The widgets on the dashboard", "type": "array", "items": { "type": "object", "properties": { "id": { "description": "The widget ID", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The description of the widget", "type": "string", "x-ignition-non-secret": false }, "position": { "description": "The position of the widget", "type": "object", "properties": { "columnEnd": { "description": "The ending column of the widget", "type": "number", "x-ignition-non-secret": false }, "columnStart": { "description": "The starting column of the widget", "type": "number", "x-ignition-non-secret": false }, "rowEnd": { "description": "The ending row of the widget", "type": "number", "x-ignition-non-secret": false }, "rowStart": { "description": "The starting row of the widget", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "grid": { "description": "The grid layout of the dashboard", "type": "object", "properties": { "rows": { "description": "The number of rows in the grid", "type": "number", "x-ignition-non-secret": false }, "columns": { "description": "The number of columns in the grid", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "widgets": { "description": "The widgets on the dashboard", "type": "array", "items": { "type": "object", "properties": { "id": { "description": "The widget ID", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The description of the widget", "type": "string", "x-ignition-non-secret": false }, "position": { "description": "The position of the widget", "type": "object", "properties": { "columnEnd": { "description": "The ending column of the widget", "type": "number", "x-ignition-non-secret": false }, "columnStart": { "description": "The starting column of the widget", "type": "number", "x-ignition-non-secret": false }, "rowEnd": { "description": "The ending row of the widget", "type": "number", "x-ignition-non-secret": false }, "rowStart": { "description": "The starting row of the widget", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/oauth2-client/{name}": { "get": { "tags": [ "config-oauth2-client" ], "summary": "Get OAuth2 Client Config", "description": "Retrieve configuration details about a specific OAuth2 Client resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the authorization server. This value is provided by the authorization server." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the authorization server. This value is provided by the authorization server.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationUrl": { "type": "string", "title": "Authorization URL", "description": "Optional URL of the authorization server's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the authorization server on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenUrl": { "type": "string", "title": "Token URL", "description": "Required URL of the authorization server's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "httpVersion": { "type": "string", "title": "HTTP Version", "description": "The maximum HTTP version supported by the authorization server's token endpoint. The Gateway's HTTP client will use this version when making HTTP requests to the authorization server.", "enum": [ "HTTP_1_1", "HTTP_2" ] }, "httpConnectTimeout": { "type": "number", "title": "HTTP Connect Timeout", "description": "In the case where the Gateway's HTTP client needs to establish a new HTTP connection with the authorization server, if the connection cannot be established within the given amount of time in milliseconds, then the connection attempt and any pending request requiring the connection will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for the connection to be made)." }, "httpRequestTimeout": { "type": "number", "title": "HTTP Request Timeout", "description": "The timeout in milliseconds for each HTTP request sent from the Gateway's HTTP client to the authorization server. If an HTTP response is not received within the specified timeout after sending an HTTP request then the HTTP request will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for a response)." } }, "required": [ "clientId", "clientSecret", "tokenUrl", "httpVersion", "httpConnectTimeout", "httpRequestTimeout" ] }, "backupConfig": { "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the authorization server. This value is provided by the authorization server." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the authorization server. This value is provided by the authorization server.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationUrl": { "type": "string", "title": "Authorization URL", "description": "Optional URL of the authorization server's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the authorization server on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenUrl": { "type": "string", "title": "Token URL", "description": "Required URL of the authorization server's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "httpVersion": { "type": "string", "title": "HTTP Version", "description": "The maximum HTTP version supported by the authorization server's token endpoint. The Gateway's HTTP client will use this version when making HTTP requests to the authorization server.", "enum": [ "HTTP_1_1", "HTTP_2" ] }, "httpConnectTimeout": { "type": "number", "title": "HTTP Connect Timeout", "description": "In the case where the Gateway's HTTP client needs to establish a new HTTP connection with the authorization server, if the connection cannot be established within the given amount of time in milliseconds, then the connection attempt and any pending request requiring the connection will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for the connection to be made)." }, "httpRequestTimeout": { "type": "number", "title": "HTTP Request Timeout", "description": "The timeout in milliseconds for each HTTP request sent from the Gateway's HTTP client to the authorization server. If an HTTP response is not received within the specified timeout after sending an HTTP request then the HTTP request will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for a response)." } }, "required": [ "clientId", "clientSecret", "tokenUrl", "httpVersion", "httpConnectTimeout", "httpRequestTimeout" ] }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/opc-connection/{name}": { "get": { "tags": [ "opc-connection" ], "summary": "Get OPC Connections Config", "description": "Retrieve configuration details about a specific OPC Connections resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "com.inductiveautomation.OpcUaServerType" ] }, "readOnly": { "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/opc-connection/com.inductiveautomation.OpcUaServerType", "title": "com.inductiveautomation.OpcUaServerType", "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "securityPolicy": { "type": "string", "enum": [ "None", "Basic128Rsa15", "Basic256", "Basic256Sha256", "Aes128_Sha256_RsaOaep", "Aes256_Sha256_RsaPss" ], "x-ignition-non-secret": false }, "securityMode": { "type": "string", "enum": [ "Invalid", "None", "Sign", "SignAndEncrypt" ], "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "keepAlive": { "type": "object", "properties": { "failuresAllowed": { "type": "number", "x-ignition-non-secret": false }, "interval": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectTimeout": { "type": "number", "x-ignition-non-secret": false }, "acknowledgeTimeout": { "type": "number", "x-ignition-non-secret": false }, "requestTimeout": { "type": "number", "x-ignition-non-secret": false }, "sessionTimeout": { "type": "number", "x-ignition-non-secret": false }, "maxPerOperation": { "type": "number", "x-ignition-non-secret": false }, "maxReferencesPerNode": { "type": "number", "x-ignition-non-secret": false }, "maxPendingPublishRequests": { "type": "number", "x-ignition-non-secret": false }, "maxNotificationsPerPublish": { "type": "number", "x-ignition-non-secret": false }, "maxMessageSize": { "type": "number", "x-ignition-non-secret": false }, "maxArrayLength": { "type": "number", "x-ignition-non-secret": false }, "maxStringLength": { "type": "number", "x-ignition-non-secret": false }, "browseOrigin": { "type": "string", "enum": [ "OBJECTS_FOLDER", "ROOT_FOLDER" ], "x-ignition-non-secret": false }, "deprecatedDataTypeDictionarySupport": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "security": { "type": "object", "properties": { "certificateValidationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "keyStoreAlias": { "type": "string", "x-ignition-non-secret": true }, "keyStoreAliasPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "failover": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "threshold": { "type": "number", "x-ignition-non-secret": false }, "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "com.inductiveautomation.OpcUaServerType" ] }, "readOnly": { "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/opc-connection/com.inductiveautomation.OpcUaServerType", "title": "com.inductiveautomation.OpcUaServerType", "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "securityPolicy": { "type": "string", "enum": [ "None", "Basic128Rsa15", "Basic256", "Basic256Sha256", "Aes128_Sha256_RsaOaep", "Aes256_Sha256_RsaPss" ], "x-ignition-non-secret": false }, "securityMode": { "type": "string", "enum": [ "Invalid", "None", "Sign", "SignAndEncrypt" ], "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "keepAlive": { "type": "object", "properties": { "failuresAllowed": { "type": "number", "x-ignition-non-secret": false }, "interval": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectTimeout": { "type": "number", "x-ignition-non-secret": false }, "acknowledgeTimeout": { "type": "number", "x-ignition-non-secret": false }, "requestTimeout": { "type": "number", "x-ignition-non-secret": false }, "sessionTimeout": { "type": "number", "x-ignition-non-secret": false }, "maxPerOperation": { "type": "number", "x-ignition-non-secret": false }, "maxReferencesPerNode": { "type": "number", "x-ignition-non-secret": false }, "maxPendingPublishRequests": { "type": "number", "x-ignition-non-secret": false }, "maxNotificationsPerPublish": { "type": "number", "x-ignition-non-secret": false }, "maxMessageSize": { "type": "number", "x-ignition-non-secret": false }, "maxArrayLength": { "type": "number", "x-ignition-non-secret": false }, "maxStringLength": { "type": "number", "x-ignition-non-secret": false }, "browseOrigin": { "type": "string", "enum": [ "OBJECTS_FOLDER", "ROOT_FOLDER" ], "x-ignition-non-secret": false }, "deprecatedDataTypeDictionarySupport": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "security": { "type": "object", "properties": { "certificateValidationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "keyStoreAlias": { "type": "string", "x-ignition-non-secret": true }, "keyStoreAliasPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "failover": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "threshold": { "type": "number", "x-ignition-non-secret": false }, "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } }, "uptime": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/roster-config/{name}": { "get": { "tags": [ "roster-config" ], "summary": "Get Rosters Config", "description": "Retrieve configuration details about a specific Rosters resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "users": { "description": "The list of users assigned to this On-Call Roster", "type": "array", "items": { "type": "object", "properties": { "userId": { "description": "The ID of the User.", "type": "string", "x-ignition-non-secret": false }, "profile": { "description": "Name of the User's Source Profile", "type": "string", "x-ignition-non-secret": false } }, "required": [ "userId", "profile" ] }, "x-ignition-non-secret": false } }, "required": [ "users" ] }, "backupConfig": { "type": "object", "properties": { "users": { "description": "The list of users assigned to this On-Call Roster", "type": "array", "items": { "type": "object", "properties": { "userId": { "description": "The ID of the User.", "type": "string", "x-ignition-non-secret": false }, "profile": { "description": "Name of the User's Source Profile", "type": "string", "x-ignition-non-secret": false } }, "required": [ "userId", "profile" ] }, "x-ignition-non-secret": false } }, "required": [ "users" ] }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/schedule/{name}": { "get": { "tags": [ "config-alarm" ], "summary": "Get Schedule Config", "description": "Retrieve configuration details about a specific Schedule resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic schedule", "composite schedule" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/schedule/basic schedule", "title": "basic schedule", "type": "object", "properties": { "observeHolidays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "weekDays": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "weekDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "monday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "tuesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "wednesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "thursday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "friday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "saturday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "sunday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "mondayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "tuesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "wednesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "thursdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "fridayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "saturdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "sundayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "repeatMode": { "default": "Off", "type": "string", "enum": [ "Off", "Weekly", "Daily" ], "x-ignition-non-secret": false }, "repeatOn": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "repeatOff": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "startingAt": { "type": "string", "format": "date-time", "x-ignition-non-secret": false } } }, { "$id": "ignition/schedule/composite schedule", "title": "composite schedule", "type": "object", "properties": { "schedule1": { "description": "Schedule 1 Name", "examples": [ "BasicSchedule1" ], "type": "string", "x-ignition-non-secret": false }, "schedule2": { "description": "Schedule 2 Name", "examples": [ "BasicSchedule2" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "schedule1", "schedule2" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic schedule", "composite schedule" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/schedule/basic schedule", "title": "basic schedule", "type": "object", "properties": { "observeHolidays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "weekDays": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "weekDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "monday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "tuesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "wednesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "thursday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "friday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "saturday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "sunday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "mondayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "tuesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "wednesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "thursdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "fridayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "saturdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "sundayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "repeatMode": { "default": "Off", "type": "string", "enum": [ "Off", "Weekly", "Daily" ], "x-ignition-non-secret": false }, "repeatOn": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "repeatOff": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "startingAt": { "type": "string", "format": "date-time", "x-ignition-non-secret": false } } }, { "$id": "ignition/schedule/composite schedule", "title": "composite schedule", "type": "object", "properties": { "schedule1": { "description": "Schedule 1 Name", "examples": [ "BasicSchedule1" ], "type": "string", "x-ignition-non-secret": false }, "schedule2": { "description": "Schedule 2 Name", "examples": [ "BasicSchedule2" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "schedule1", "schedule2" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "metrics": { "type": "object", "description": "The metrics of the resource instance.", "properties": { "active": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/secret-provider/{name}": { "get": { "tags": [ "config-secret-provider" ], "summary": "Get Secret Provider Config", "description": "Retrieve configuration details about a specific Secret Provider resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/secret-provider/internal", "title": "internal", "type": "object", "properties": { "secrets": { "type": "object", "title": "Secrets", "description": "The secrets configured on the provider.", "x-ignition-non-secret": true, "additionalProperties": { "type": "object", "properties": { "description": { "type": "string", "title": "Description", "description": "Description for the secret" }, "ciphertext": { "type": "object", "title": "Ciphertext", "description": "The JWE-encoded ciphertext value of the secret", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "ciphertext" ], "title": "Secret", "description": "The name for each entry is the name of the secret, and the value for each entry is the configuration for the secret." } } }, "required": [ "secrets" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/secret-provider/internal", "title": "internal", "type": "object", "properties": { "secrets": { "type": "object", "title": "Secrets", "description": "The secrets configured on the provider.", "x-ignition-non-secret": true, "additionalProperties": { "type": "object", "properties": { "description": { "type": "string", "title": "Description", "description": "Description for the secret" }, "ciphertext": { "type": "object", "title": "Ciphertext", "description": "The JWE-encoded ciphertext value of the secret", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "ciphertext" ], "title": "Secret", "description": "The name for each entry is the name of the secret, and the value for each entry is the configuration for the secret." } } }, "required": [ "secrets" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/security-zone/{name}": { "get": { "tags": [ "config-security-zone" ], "summary": "Get Security Zones Config", "description": "Retrieve configuration details about a specific Security Zones resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "ipAddresses": { "description": "A list of addresses that this zone applies to, and the addresses may use wildcards or ranges. For example, '192.168.*.*' or '192.168.1-5.0-255'.", "type": "array", "items": { "type": "string", "ipAddresses": "string" }, "x-ignition-non-secret": false }, "hostNames": { "description": "A list of host names that this zone applies to. May use the wildcard '*', such as 'Manufacturing_*'. Host names are the system names of the machines generating the requests. For example, the computer name of the machine running a client.", "type": "array", "items": { "type": "string", "hostNames": "string" }, "x-ignition-non-secret": false }, "gatewayNames": { "description": "A list of gateway names that this zone applies to. May use the wildcard '*'. Gateway names are the names of the Ignition instance.", "type": "array", "items": { "type": "string", "gatewayNames": "string" }, "x-ignition-non-secret": false }, "isSecure": { "description": "If true, only connections over a secure connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "directConnection": { "description": "If true, only requests that come from a direct connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "scopeClient": { "description": "If false, requests from a client will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeDesigner": { "description": "If false, requests from designers will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeGateway": { "description": "If false, requests from the gateway scope will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "entityPolicies": { "description": "A list of entity policies that apply to this zone.", "type": "array", "items": { "type": "object", "properties": { "entityId": { "description": "The ID of the entity the policy applies to.", "type": "string", "x-ignition-non-secret": false }, "propName": { "description": "The property for the policy.", "type": "string", "x-ignition-non-secret": false }, "propValue": { "description": "The value for the property on the policy.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entityId", "propName" ] }, "x-ignition-non-secret": false }, "entityZonePolicy": { "description": "The entity zone policy that applies to this zone.", "type": "object", "properties": { "priority": { "description": "The priority for the policy.", "default": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "ipAddresses": { "description": "A list of addresses that this zone applies to, and the addresses may use wildcards or ranges. For example, '192.168.*.*' or '192.168.1-5.0-255'.", "type": "array", "items": { "type": "string", "ipAddresses": "string" }, "x-ignition-non-secret": false }, "hostNames": { "description": "A list of host names that this zone applies to. May use the wildcard '*', such as 'Manufacturing_*'. Host names are the system names of the machines generating the requests. For example, the computer name of the machine running a client.", "type": "array", "items": { "type": "string", "hostNames": "string" }, "x-ignition-non-secret": false }, "gatewayNames": { "description": "A list of gateway names that this zone applies to. May use the wildcard '*'. Gateway names are the names of the Ignition instance.", "type": "array", "items": { "type": "string", "gatewayNames": "string" }, "x-ignition-non-secret": false }, "isSecure": { "description": "If true, only connections over a secure connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "directConnection": { "description": "If true, only requests that come from a direct connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "scopeClient": { "description": "If false, requests from a client will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeDesigner": { "description": "If false, requests from designers will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeGateway": { "description": "If false, requests from the gateway scope will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "entityPolicies": { "description": "A list of entity policies that apply to this zone.", "type": "array", "items": { "type": "object", "properties": { "entityId": { "description": "The ID of the entity the policy applies to.", "type": "string", "x-ignition-non-secret": false }, "propName": { "description": "The property for the policy.", "type": "string", "x-ignition-non-secret": false }, "propValue": { "description": "The value for the property on the policy.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entityId", "propName" ] }, "x-ignition-non-secret": false }, "entityZonePolicy": { "description": "The entity zone policy that applies to this zone.", "type": "object", "properties": { "priority": { "description": "The priority for the policy.", "default": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/service-connector/{name}": { "get": { "tags": [ "service-connectors" ], "summary": "Get Service Connectors Config", "description": "Retrieve configuration details about a specific Service Connectors resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "kafka" ] } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/service-connector/kafka", "title": "kafka", "type": "object", "properties": { "bootstrapServers": { "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster.", "type": "array", "items": { "type": "string", "bootstrapServers": "string" }, "x-ignition-non-secret": false }, "saslMechanism": { "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.", "type": "string", "x-ignition-non-secret": false }, "securityProtocol": { "description": "Protocol used to communicate with brokers.", "type": "string", "enum": [ "PLAINTEXT", "SSL", "SASL_PLAINTEXT", "SASL_SSL" ], "x-ignition-non-secret": false }, "username": { "description": "Username to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism.", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Password to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism." }, "ssl": { "type": "object", "properties": { "protocol": { "description": "The SSL protocol used to generate the SSLContext.", "type": "string", "x-ignition-non-secret": false }, "keyPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password of the private key in the key store file or the PEM key specified in 'ssl.keystore.key'." }, "keystore": { "type": "object", "properties": { "type": { "description": "The file format of the key store file. This is optional for client. The values currently supported by the default `ssl.engine.factory.class` are [JKS, PKCS12, PEM].", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format." }, "key": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password'." } }, "x-ignition-non-secret": true }, "truststore": { "type": "object", "properties": { "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format." } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "props": { "type": "object", "properties": { "client": { "description": "Custom properties applied to client. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "consumer": { "description": "Custom properties to be applied to consumers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "producer": { "description": "Custom properties to be applied to producers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "bootstrapServers", "saslMechanism", "securityProtocol" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "kafka" ] } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/service-connector/kafka", "title": "kafka", "type": "object", "properties": { "bootstrapServers": { "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster.", "type": "array", "items": { "type": "string", "bootstrapServers": "string" }, "x-ignition-non-secret": false }, "saslMechanism": { "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.", "type": "string", "x-ignition-non-secret": false }, "securityProtocol": { "description": "Protocol used to communicate with brokers.", "type": "string", "enum": [ "PLAINTEXT", "SSL", "SASL_PLAINTEXT", "SASL_SSL" ], "x-ignition-non-secret": false }, "username": { "description": "Username to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism.", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Password to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism." }, "ssl": { "type": "object", "properties": { "protocol": { "description": "The SSL protocol used to generate the SSLContext.", "type": "string", "x-ignition-non-secret": false }, "keyPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password of the private key in the key store file or the PEM key specified in 'ssl.keystore.key'." }, "keystore": { "type": "object", "properties": { "type": { "description": "The file format of the key store file. This is optional for client. The values currently supported by the default `ssl.engine.factory.class` are [JKS, PKCS12, PEM].", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format." }, "key": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password'." } }, "x-ignition-non-secret": true }, "truststore": { "type": "object", "properties": { "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format." } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "props": { "type": "object", "properties": { "client": { "description": "Custom properties applied to client. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "consumer": { "description": "Custom properties to be applied to consumers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "producer": { "description": "Custom properties to be applied to producers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "bootstrapServers", "saslMechanism", "securityProtocol" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/store-and-forward-engine/{name}": { "get": { "tags": [ "config-store-forward" ], "summary": "Get Store and Forward Engine Config", "description": "Retrieve configuration details about a specific Store and Forward Engine resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "timeThresholdMs": { "description": "The maximum milliseconds time that data will be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardRateMs": { "description": "The rate in milliseconds at which data will be considered eligible for forwarding to any attached data sink.", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardingPolicy": { "description": "The forwarding policy used to determine where data should be read from when forwarding to any attached data sink. Note: If the policy is set to \"Primary,\" data will only be written to the secondary datastore (disk) when quarantining.", "type": "string", "enum": [ "ALL", "PRIMARY_ONLY", "SECONDARY_ONLY" ], "x-ignition-non-secret": false }, "forwardingSchedule": { "description": "A comma separated list of time ranges. Examples: 9:00-15:00, 9pm-5am, 20.30-04.30", "type": "string", "x-ignition-non-secret": false }, "isThirdParty": { "description": "Specifies whether the engine shouldn't be directly managed by the Store & Forward Manager.", "type": "boolean", "x-ignition-non-secret": false }, "dataThreshold": { "description": "The maximum amount of data that'll be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "batchSize": { "description": "The maximum amount of data that'll be batched when forwarding to either the secondary datastore (disk) or any attached data sink. This also determines the volume of data removed during each eviction cycle when using an eviction maintenance policy. Note: Data could be further batched within the data sink when processing incoming data.", "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "scanRateMs": { "description": "The rate in milliseconds at which data pipelines are scanned for determining data forwarding.", "minimum": 100, "type": "number", "x-ignition-non-secret": false }, "primaryMaintenancePolicy": { "description": "The optional maintenance policy for the primary datastore (memory).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "secondaryMaintenancePolicy": { "description": "The optional maintenance policy for the secondary datastore (disk).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "timeThresholdMs": { "description": "The maximum milliseconds time that data will be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardRateMs": { "description": "The rate in milliseconds at which data will be considered eligible for forwarding to any attached data sink.", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardingPolicy": { "description": "The forwarding policy used to determine where data should be read from when forwarding to any attached data sink. Note: If the policy is set to \"Primary,\" data will only be written to the secondary datastore (disk) when quarantining.", "type": "string", "enum": [ "ALL", "PRIMARY_ONLY", "SECONDARY_ONLY" ], "x-ignition-non-secret": false }, "forwardingSchedule": { "description": "A comma separated list of time ranges. Examples: 9:00-15:00, 9pm-5am, 20.30-04.30", "type": "string", "x-ignition-non-secret": false }, "isThirdParty": { "description": "Specifies whether the engine shouldn't be directly managed by the Store & Forward Manager.", "type": "boolean", "x-ignition-non-secret": false }, "dataThreshold": { "description": "The maximum amount of data that'll be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "batchSize": { "description": "The maximum amount of data that'll be batched when forwarding to either the secondary datastore (disk) or any attached data sink. This also determines the volume of data removed during each eviction cycle when using an eviction maintenance policy. Note: Data could be further batched within the data sink when processing incoming data.", "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "scanRateMs": { "description": "The rate in milliseconds at which data pipelines are scanned for determining data forwarding.", "minimum": 100, "type": "number", "x-ignition-non-secret": false }, "primaryMaintenancePolicy": { "description": "The optional maintenance policy for the primary datastore (memory).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "secondaryMaintenancePolicy": { "description": "The optional maintenance policy for the secondary datastore (disk).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/tag-provider/{name}": { "get": { "tags": [ "config-tag-provider" ], "summary": "Get Tag Providers Config", "description": "Retrieve configuration details about a specific Tag Providers resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "MANAGED", "REMOTE", "STANDARD" ] }, "allowBackfill": { "description": "If **true**, data will be allowed to arrive out of order from the source. Data from the past will be stored to history, but will not be used for alarms, scripts, or subscriptions. If **false**, each value will be processed fully as it arrives.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/tag-provider/MANAGED", "title": "MANAGED", "type": "object", "properties": { "nonUseCount": { "description": "The number of times the provider has not been used", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/REMOTE", "title": "REMOTE", "type": "object", "properties": { "serverName": { "description": "Gateway to target", "type": "string", "x-ignition-non-secret": false }, "remoteProviderName": { "description": "Remote tag provider name", "type": "string", "x-ignition-non-secret": false }, "historyMode": { "description": "Dictates how history is queried for remote Tags.**GatewayNetwork**, history requests will go through the Gateway Network.**Database** history requests will run against the database directly.", "default": "GatewayNetwork", "type": "string", "enum": [ "GatewayNetwork", "Database" ], "x-ignition-non-secret": false }, "historyDatasourceName": { "description": "Datasource name to query when History Access Mode is set to Database.", "type": "string", "x-ignition-non-secret": false }, "historyDriverName": { "description": "If querying the database directly, this is the Gateway name of the remote system.", "type": "string", "x-ignition-non-secret": false }, "historyProviderName": { "description": "If querying the database directly, this is the name of the Tag provider on the remote system.", "type": "string", "x-ignition-non-secret": false }, "alarmStatusEnabled": { "description": "If **true**, alarms configured on the remote Gateway will be enabled on the new Gateway", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "alarmMode": { "description": "How alarm state should be monitored. In **Queried**, state will be queried through the Gateway network when necessary. In **Subscribed**, the state will be subscribed, and updates will be sent asynchronously.", "default": "Queried", "type": "string", "enum": [ "Queried", "Subscribed" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/STANDARD", "title": "STANDARD", "type": "object", "properties": { "defaultDatasourceName": { "type": "string", "x-ignition-non-secret": false }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to read any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "readOnly": { "description": "If **true**, writes to any tag within this tag provider will be rejected.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to write to any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "editPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to edit any tag within this tag provider must have these permissions." }, "valuePersistence": { "description": "If and how memory tag values are persisted. **Database** persists any writes to values in a database. **Configuration** persists writes to values in the config file on the file system. **None** prevents any writes from persisting; on provider restart the value is pulled from the config.", "default": "Database", "type": "string", "enum": [ "None", "Database", "Configuration" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "MANAGED", "REMOTE", "STANDARD" ] }, "allowBackfill": { "description": "If **true**, data will be allowed to arrive out of order from the source. Data from the past will be stored to history, but will not be used for alarms, scripts, or subscriptions. If **false**, each value will be processed fully as it arrives.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/tag-provider/MANAGED", "title": "MANAGED", "type": "object", "properties": { "nonUseCount": { "description": "The number of times the provider has not been used", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/REMOTE", "title": "REMOTE", "type": "object", "properties": { "serverName": { "description": "Gateway to target", "type": "string", "x-ignition-non-secret": false }, "remoteProviderName": { "description": "Remote tag provider name", "type": "string", "x-ignition-non-secret": false }, "historyMode": { "description": "Dictates how history is queried for remote Tags.**GatewayNetwork**, history requests will go through the Gateway Network.**Database** history requests will run against the database directly.", "default": "GatewayNetwork", "type": "string", "enum": [ "GatewayNetwork", "Database" ], "x-ignition-non-secret": false }, "historyDatasourceName": { "description": "Datasource name to query when History Access Mode is set to Database.", "type": "string", "x-ignition-non-secret": false }, "historyDriverName": { "description": "If querying the database directly, this is the Gateway name of the remote system.", "type": "string", "x-ignition-non-secret": false }, "historyProviderName": { "description": "If querying the database directly, this is the name of the Tag provider on the remote system.", "type": "string", "x-ignition-non-secret": false }, "alarmStatusEnabled": { "description": "If **true**, alarms configured on the remote Gateway will be enabled on the new Gateway", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "alarmMode": { "description": "How alarm state should be monitored. In **Queried**, state will be queried through the Gateway network when necessary. In **Subscribed**, the state will be subscribed, and updates will be sent asynchronously.", "default": "Queried", "type": "string", "enum": [ "Queried", "Subscribed" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/STANDARD", "title": "STANDARD", "type": "object", "properties": { "defaultDatasourceName": { "type": "string", "x-ignition-non-secret": false }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to read any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "readOnly": { "description": "If **true**, writes to any tag within this tag provider will be rejected.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to write to any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "editPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to edit any tag within this tag provider must have these permissions." }, "valuePersistence": { "description": "If and how memory tag values are persisted. **Database** persists any writes to values in a database. **Configuration** persists writes to values in the config file on the file system. **None** prevents any writes from persisting; on provider restart the value is pulled from the config.", "default": "Database", "type": "string", "enum": [ "None", "Database", "Configuration" ], "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "metrics": { "type": "object", "description": "The metrics of the resource instance.", "properties": { "tagCount": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/find/ignition/user-source/{name}": { "get": { "tags": [ "config-user-source" ], "summary": "Get User Sources Config", "description": "Retrieve configuration details about a specific User Sources resource", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "ADEASY", "ADHYBRID", "AD_DB_HYBRID", "DATASOURCE", "FALLBK_CACHE", "INTERNAL" ] }, "scheduleRestricted": { "description": "Users are only able to log in when their assigned schedule is active.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Schedule Restricted" }, "type": "boolean", "x-ignition-non-secret": false }, "failoverProfile": { "description": "If this source is unreachable for authentication, this failover source will be used instead.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Failover Profile", "referenceType": "ignition/user-source" }, "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "description": "The failover mode to use if a failover source is set. Hard - failover only if this source is unreachable. Soft - try the failover source when a user fails to authenticate with this source.", "default": "HARD", "x-form": { "fieldType": "SELECT", "category": "GENERAL", "label": "Failover Mode" }, "type": "string", "enum": [ "HARD", "SOFT" ], "x-ignition-non-secret": false }, "cacheValidationTimeout": { "description": "The amount of time in minutes between cache updates of the user source. Values less than one disable the cache.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Cache Validation Timeout" }, "type": "number", "x-ignition-non-secret": false }, "lockoutEnabled": { "description": "Lock out a user's account after more than the maximum allowed number of failed authentication attempts occur within the lockout window", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Lockout Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "lockoutAttempts": { "description": "Maximum number of failed authentication attempts allowed within the lockout window before locking the user out. Values less than one disables lockout.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Attempts" }, "type": "number", "x-ignition-non-secret": false }, "lockoutWindow": { "description": "The duration of the lockout window in minutes. Values less than one disables lockout.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Window" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/user-source/ADEASY", "title": "ADEASY", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userSearchBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User Search Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userRoleAttribute": { "description": "Attributes of this name on the User object will define the user's roles.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "nestedGroups": { "description": "If this option is checked, nested group membership lookups will be performed.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "groupRoleAttribute": { "description": "Attributes of this name on the Group object will define the group's roles. This setting is only applicable when nested group membership is enabled.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "roleNameAttribute": { "description": "The attribute of this name on the Role object will define the role's name. Leave blank to use the raw value of the attribute defined by User Role Attribute.", "default": "cn", "type": "string", "x-ignition-non-secret": false }, "roleIdAttribute": { "description": "The attribute of this name on the Role object will define the role's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "badgeAttribute": { "description": "The attribute on the User object to define the badge. This setting is required to enable badge-based authentication.", "type": "string", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "roleSearchBase": { "description": "The base folder to search for roles under, such as \"OU=Roles,DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the Role Search Filter. If you specify the root of your tree structure, the search may take a very long time. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Builtin,DC=MyCompany,DC=com)(OU=Users,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "roleSearchFilter": { "description": "The LDAP search filter to use to locate roles.", "default": "(objectClass=group)", "type": "string", "x-ignition-non-secret": false }, "badgeSearchFilter": { "description": "The LDAP search filter to use to find a specific user given a badge. Use the placeholder {0} as a standin for the user's badge. Example: (&(objectClass=user)(badge={0}))", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ] }, { "$id": "ignition/user-source/ADHYBRID", "title": "ADHYBRID", "type": "object", "properties": { "ldap": { "description": "LDAP settings", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations.", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-int-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, users must be added manually.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "populateUsersOnDemand": { "description": "If true, a user record will be created in the Internal user source from the AD entry of any user who successfully authenticates into AD if the record does not already exist in the Internal user source at the time of authentication.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "ldap" ] }, { "$id": "ignition/user-source/AD_DB_HYBRID", "title": "AD_DB_HYBRID", "type": "object", "properties": { "database": { "description": "Database settings", "type": "object", "properties": { "datasource": { "description": "The database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username.<br/>Example: <tt>SELECT username FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value, and the third column the name of a schedule. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value, schedule FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. Only used if \"List Users from Active Directory\" is false. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "userPropsQuery": { "description": "A query that returns the basic properties for a single user. Only used if \"List Users from Active Directory\" is true. Supported return columns are [firstname, lastname, schedule, language, notes, badge]. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT firstname, lastname, schedule, language, notes, badge FROM user_table WHERE username = ?</tt> ", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. Only used if \"List Users from Active Directory\" is false. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings (i.e. the role names), and must be in the first column of the query's results. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT rolename FROM user_role_mapping WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false } }, "required": [ "datasource" ], "x-ignition-non-secret": false }, "ldap": { "description": "LDAP settings", "type": "object", "properties": { "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users via LDAP.", "type": "string", "x-ignition-non-secret": false }, "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-db-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1", "port1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, the database will be queried instead.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "database", "ldap" ] }, { "$id": "ignition/user-source/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Choose the database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "mode": { "description": "In Automatic mode, tables will be created for you and all interaction with the database is handled automatically. In Manual mode, you write queries by hand against tables that you've created. Management of users (adding, removing etc) is not supported in manual mode.", "default": "Automatic", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "authQuery": { "description": "A query that must return a row if the given username and password combination provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent username first and then password. The returned row may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT useruuid, firstname, lastname, schedule FROM USERS WHERE username = ? AND password = MD5(?)</tt>", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username and may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings and must be in the first column of the query's results. The query will be run as a prepared statement with one parameter: the username.<br/>Example: <tt>SELECT rolename FROM mapping_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule, FROM USERS WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt> ", "type": "string", "x-ignition-non-secret": false }, "tableNamePrefix": { "description": "When in automatic mode, tables will be created to store the users and roles. They will have this prefix.", "default": "scada_", "type": "string", "x-ignition-non-secret": false }, "enableUuids": { "description": "When in automatic mode, UUIDs will be generated for user and role IDs.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/user-source/FALLBK_CACHE", "title": "FALLBK_CACHE", "type": "object", "properties": { "cacheRetention": { "description": "Number of days that the cache will retain recently used credentials.", "default": 15, "minimum": 1, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/user-source/INTERNAL", "title": "INTERNAL", "type": "object", "properties": { "passwordMaxAge": { "description": "The maximum age (in days) that a password is valid for. A value of zero disables password expiration.", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": true }, "passwordMinLength": { "description": "Passwords must be at least this many characters long.", "default": 8, "minimum": 1, "maximum": 20, "type": "number", "x-ignition-non-secret": true }, "passwordComplexity": { "description": "The number of character types (lowercase letters, uppercase letters, digits, punctuation) each password must contain. For example, a value of 3 means passwords must have 3 of the 4 character types to be considered valid.", "default": 3, "minimum": 1, "maximum": 4, "type": "number", "x-ignition-non-secret": true }, "passwordHistory": { "description": "The number of previous passwords to store. Passwords in the history list may not be re-used. A value of zero disables this feature.", "default": 0, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true }, "passwordContainsPassword": { "description": "If enabled, passwords may not contain any form of the word \"password\". This includes: password, pass, word, pwd, passwd and pword.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordContainsUserName": { "description": "If enabled, passwords may not contain any form of the username.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordMaxRepeatedChars": { "description": "The maximum number of consecutive repeated characters allowed in a password. Set to 0 to disable.", "default": 3, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "ADEASY", "ADHYBRID", "AD_DB_HYBRID", "DATASOURCE", "FALLBK_CACHE", "INTERNAL" ] }, "scheduleRestricted": { "description": "Users are only able to log in when their assigned schedule is active.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Schedule Restricted" }, "type": "boolean", "x-ignition-non-secret": false }, "failoverProfile": { "description": "If this source is unreachable for authentication, this failover source will be used instead.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Failover Profile", "referenceType": "ignition/user-source" }, "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "description": "The failover mode to use if a failover source is set. Hard - failover only if this source is unreachable. Soft - try the failover source when a user fails to authenticate with this source.", "default": "HARD", "x-form": { "fieldType": "SELECT", "category": "GENERAL", "label": "Failover Mode" }, "type": "string", "enum": [ "HARD", "SOFT" ], "x-ignition-non-secret": false }, "cacheValidationTimeout": { "description": "The amount of time in minutes between cache updates of the user source. Values less than one disable the cache.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Cache Validation Timeout" }, "type": "number", "x-ignition-non-secret": false }, "lockoutEnabled": { "description": "Lock out a user's account after more than the maximum allowed number of failed authentication attempts occur within the lockout window", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Lockout Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "lockoutAttempts": { "description": "Maximum number of failed authentication attempts allowed within the lockout window before locking the user out. Values less than one disables lockout.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Attempts" }, "type": "number", "x-ignition-non-secret": false }, "lockoutWindow": { "description": "The duration of the lockout window in minutes. Values less than one disables lockout.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Window" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/user-source/ADEASY", "title": "ADEASY", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userSearchBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User Search Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userRoleAttribute": { "description": "Attributes of this name on the User object will define the user's roles.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "nestedGroups": { "description": "If this option is checked, nested group membership lookups will be performed.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "groupRoleAttribute": { "description": "Attributes of this name on the Group object will define the group's roles. This setting is only applicable when nested group membership is enabled.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "roleNameAttribute": { "description": "The attribute of this name on the Role object will define the role's name. Leave blank to use the raw value of the attribute defined by User Role Attribute.", "default": "cn", "type": "string", "x-ignition-non-secret": false }, "roleIdAttribute": { "description": "The attribute of this name on the Role object will define the role's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "badgeAttribute": { "description": "The attribute on the User object to define the badge. This setting is required to enable badge-based authentication.", "type": "string", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "roleSearchBase": { "description": "The base folder to search for roles under, such as \"OU=Roles,DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the Role Search Filter. If you specify the root of your tree structure, the search may take a very long time. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Builtin,DC=MyCompany,DC=com)(OU=Users,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "roleSearchFilter": { "description": "The LDAP search filter to use to locate roles.", "default": "(objectClass=group)", "type": "string", "x-ignition-non-secret": false }, "badgeSearchFilter": { "description": "The LDAP search filter to use to find a specific user given a badge. Use the placeholder {0} as a standin for the user's badge. Example: (&(objectClass=user)(badge={0}))", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ] }, { "$id": "ignition/user-source/ADHYBRID", "title": "ADHYBRID", "type": "object", "properties": { "ldap": { "description": "LDAP settings", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations.", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-int-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, users must be added manually.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "populateUsersOnDemand": { "description": "If true, a user record will be created in the Internal user source from the AD entry of any user who successfully authenticates into AD if the record does not already exist in the Internal user source at the time of authentication.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "ldap" ] }, { "$id": "ignition/user-source/AD_DB_HYBRID", "title": "AD_DB_HYBRID", "type": "object", "properties": { "database": { "description": "Database settings", "type": "object", "properties": { "datasource": { "description": "The database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username.<br/>Example: <tt>SELECT username FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value, and the third column the name of a schedule. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value, schedule FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. Only used if \"List Users from Active Directory\" is false. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "userPropsQuery": { "description": "A query that returns the basic properties for a single user. Only used if \"List Users from Active Directory\" is true. Supported return columns are [firstname, lastname, schedule, language, notes, badge]. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT firstname, lastname, schedule, language, notes, badge FROM user_table WHERE username = ?</tt> ", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. Only used if \"List Users from Active Directory\" is false. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings (i.e. the role names), and must be in the first column of the query's results. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT rolename FROM user_role_mapping WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false } }, "required": [ "datasource" ], "x-ignition-non-secret": false }, "ldap": { "description": "LDAP settings", "type": "object", "properties": { "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users via LDAP.", "type": "string", "x-ignition-non-secret": false }, "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-db-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1", "port1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, the database will be queried instead.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "database", "ldap" ] }, { "$id": "ignition/user-source/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Choose the database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "mode": { "description": "In Automatic mode, tables will be created for you and all interaction with the database is handled automatically. In Manual mode, you write queries by hand against tables that you've created. Management of users (adding, removing etc) is not supported in manual mode.", "default": "Automatic", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "authQuery": { "description": "A query that must return a row if the given username and password combination provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent username first and then password. The returned row may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT useruuid, firstname, lastname, schedule FROM USERS WHERE username = ? AND password = MD5(?)</tt>", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username and may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings and must be in the first column of the query's results. The query will be run as a prepared statement with one parameter: the username.<br/>Example: <tt>SELECT rolename FROM mapping_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule, FROM USERS WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt> ", "type": "string", "x-ignition-non-secret": false }, "tableNamePrefix": { "description": "When in automatic mode, tables will be created to store the users and roles. They will have this prefix.", "default": "scada_", "type": "string", "x-ignition-non-secret": false }, "enableUuids": { "description": "When in automatic mode, UUIDs will be generated for user and role IDs.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/user-source/FALLBK_CACHE", "title": "FALLBK_CACHE", "type": "object", "properties": { "cacheRetention": { "description": "Number of days that the cache will retain recently used credentials.", "default": 15, "minimum": 1, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/user-source/INTERNAL", "title": "INTERNAL", "type": "object", "properties": { "passwordMaxAge": { "description": "The maximum age (in days) that a password is valid for. A value of zero disables password expiration.", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": true }, "passwordMinLength": { "description": "Passwords must be at least this many characters long.", "default": 8, "minimum": 1, "maximum": 20, "type": "number", "x-ignition-non-secret": true }, "passwordComplexity": { "description": "The number of character types (lowercase letters, uppercase letters, digits, punctuation) each password must contain. For example, a value of 3 means passwords must have 3 of the 4 character types to be considered valid.", "default": 3, "minimum": 1, "maximum": 4, "type": "number", "x-ignition-non-secret": true }, "passwordHistory": { "description": "The number of previous passwords to store. Passwords in the history list may not be re-used. A value of zero disables this feature.", "default": 0, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true }, "passwordContainsPassword": { "description": "If enabled, passwords may not contain any form of the word \"password\". This includes: password, pass, word, pwd, passwd and pword.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordContainsUserName": { "description": "If enabled, passwords may not contain any form of the username.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordMaxRepeatedChars": { "description": "The maximum number of consecutive repeated characters allowed in a password. Set to 0 to disable.", "default": 3, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/alarm-journal": { "put": { "tags": [ "alarm-journal-resources" ], "summary": "Modify Alarm Journal Settings", "description": "Modify one or more Alarm Journal Settings resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "DATASOURCE", "LOCAL", "REMOTE" ] }, "queryOnly": { "description": "If true, this alarm journal will not be capable of storing events. Any attempt to store events will be discarded.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Query Only" }, "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/alarm-journal/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Events will be stored to this datasource.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Datasource *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "events": { "type": "object", "properties": { "minPriority": { "description": "Only events equal to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "tableName": { "description": "The table name for the core event table.", "default": "alarm_events", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "dataTableName": { "description": "The table name for event data associated with alarms.", "default": "alarm_event_data", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Event Data Table Name" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, journaled events will be stored through the store and forward system. If not enabled, they will be stored directly against the database.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/alarm-journal/LOCAL", "title": "LOCAL", "type": "object", "properties": { "events": { "type": "object", "properties": { "minPriority": { "description": "Only events to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age *" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "required": [ "age" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/alarm-journal/REMOTE", "title": "REMOTE", "type": "object", "properties": { "remoteGateway": { "type": "object", "properties": { "targetServer": { "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway Name *", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetJournal": { "x-form": { "fieldType": "TEXT", "category": "REMOTE GATEWAY", "label": "Alarm Journal *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "targetServer", "targetJournal" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "useStoreAndForward": { "description": "If enabled, alarm journal events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "other": { "type": "object", "properties": { "maxGroupSize": { "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGroupSize" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "DATASOURCE", "LOCAL", "REMOTE" ] }, "queryOnly": { "description": "If true, this alarm journal will not be capable of storing events. Any attempt to store events will be discarded.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Query Only" }, "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/alarm-journal/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Events will be stored to this datasource.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Datasource *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "events": { "type": "object", "properties": { "minPriority": { "description": "Only events equal to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "tableName": { "description": "The table name for the core event table.", "default": "alarm_events", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "dataTableName": { "description": "The table name for event data associated with alarms.", "default": "alarm_event_data", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Event Data Table Name" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, journaled events will be stored through the store and forward system. If not enabled, they will be stored directly against the database.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/alarm-journal/LOCAL", "title": "LOCAL", "type": "object", "properties": { "events": { "type": "object", "properties": { "minPriority": { "description": "Only events to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age *" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "required": [ "age" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/alarm-journal/REMOTE", "title": "REMOTE", "type": "object", "properties": { "remoteGateway": { "type": "object", "properties": { "targetServer": { "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway Name *", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetJournal": { "x-form": { "fieldType": "TEXT", "category": "REMOTE GATEWAY", "label": "Alarm Journal *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "targetServer", "targetJournal" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "useStoreAndForward": { "description": "If enabled, alarm journal events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "other": { "type": "object", "properties": { "maxGroupSize": { "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGroupSize" ], "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "alarm-journal-resources" ], "summary": "Create Alarm Journal Settings", "description": "Create a new Alarm Journal Settings resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "DATASOURCE", "LOCAL", "REMOTE" ] }, "queryOnly": { "description": "If true, this alarm journal will not be capable of storing events. Any attempt to store events will be discarded.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Query Only" }, "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/alarm-journal/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Events will be stored to this datasource.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Datasource *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "events": { "type": "object", "properties": { "minPriority": { "description": "Only events equal to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "tableName": { "description": "The table name for the core event table.", "default": "alarm_events", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "dataTableName": { "description": "The table name for event data associated with alarms.", "default": "alarm_event_data", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Event Data Table Name" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, journaled events will be stored through the store and forward system. If not enabled, they will be stored directly against the database.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/alarm-journal/LOCAL", "title": "LOCAL", "type": "object", "properties": { "events": { "type": "object", "properties": { "minPriority": { "description": "Only events to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age *" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "required": [ "age" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/alarm-journal/REMOTE", "title": "REMOTE", "type": "object", "properties": { "remoteGateway": { "type": "object", "properties": { "targetServer": { "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway Name *", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetJournal": { "x-form": { "fieldType": "TEXT", "category": "REMOTE GATEWAY", "label": "Alarm Journal *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "targetServer", "targetJournal" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "useStoreAndForward": { "description": "If enabled, alarm journal events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "other": { "type": "object", "properties": { "maxGroupSize": { "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGroupSize" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "DATASOURCE", "LOCAL", "REMOTE" ] }, "queryOnly": { "description": "If true, this alarm journal will not be capable of storing events. Any attempt to store events will be discarded.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Query Only" }, "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/alarm-journal/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Events will be stored to this datasource.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Datasource *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "events": { "type": "object", "properties": { "minPriority": { "description": "Only events equal to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "tableName": { "description": "The table name for the core event table.", "default": "alarm_events", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "dataTableName": { "description": "The table name for event data associated with alarms.", "default": "alarm_event_data", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Event Data Table Name" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, journaled events will be stored through the store and forward system. If not enabled, they will be stored directly against the database.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/alarm-journal/LOCAL", "title": "LOCAL", "type": "object", "properties": { "events": { "type": "object", "properties": { "minPriority": { "description": "Only events to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age *" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "required": [ "age" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/alarm-journal/REMOTE", "title": "REMOTE", "type": "object", "properties": { "remoteGateway": { "type": "object", "properties": { "targetServer": { "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway Name *", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetJournal": { "x-form": { "fieldType": "TEXT", "category": "REMOTE GATEWAY", "label": "Alarm Journal *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "targetServer", "targetJournal" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "useStoreAndForward": { "description": "If enabled, alarm journal events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "other": { "type": "object", "properties": { "maxGroupSize": { "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGroupSize" ], "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/alarm-journal/{name}/{signature}": { "delete": { "tags": [ "alarm-journal-resources" ], "summary": "Delete Alarm Journal Settings", "description": "Delete a Alarm Journal Settings resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/api-token": { "put": { "tags": [ "config-api-token" ], "summary": "Modify API Token", "description": "Modify one or more API Token resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic-token" ] }, "secureChannelRequired": { "type": "boolean", "title": "Secure Channel Required", "description": "Boolean indicating whether this token may only be used in secure HTTPS requests (true) or if it can be used in insecure HTTP requests (false)." }, "securityLevels": { "type": "array", "title": "Security Levels", "description": "Security levels granted to the API Token.", "items": { "$ref": "#/components/schemas/SecurityLevel" } }, "timestamp": { "type": "number", "title": "Timestamp", "description": "Number of milliseconds from 1970-01-01T00:00:00.000Z as measured in UTC until the date/time when the API token was created." } }, "required": [ "type", "secureChannelRequired", "securityLevels", "timestamp" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/api-token/basic-token", "title": "basic-token", "type": "object", "properties": { "tokenHash": { "description": "Secure digest of the API token value", "type": "string", "x-ignition-non-secret": true } }, "required": [ "tokenHash" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic-token" ] }, "secureChannelRequired": { "type": "boolean", "title": "Secure Channel Required", "description": "Boolean indicating whether this token may only be used in secure HTTPS requests (true) or if it can be used in insecure HTTP requests (false)." }, "securityLevels": { "type": "array", "title": "Security Levels", "description": "Security levels granted to the API Token.", "items": { "$ref": "#/components/schemas/SecurityLevel" } }, "timestamp": { "type": "number", "title": "Timestamp", "description": "Number of milliseconds from 1970-01-01T00:00:00.000Z as measured in UTC until the date/time when the API token was created." } }, "required": [ "type", "secureChannelRequired", "securityLevels", "timestamp" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/api-token/basic-token", "title": "basic-token", "type": "object", "properties": { "tokenHash": { "description": "Secure digest of the API token value", "type": "string", "x-ignition-non-secret": true } }, "required": [ "tokenHash" ] } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-api-token" ], "summary": "Create API Token", "description": "Create a new API Token resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic-token" ] }, "secureChannelRequired": { "type": "boolean", "title": "Secure Channel Required", "description": "Boolean indicating whether this token may only be used in secure HTTPS requests (true) or if it can be used in insecure HTTP requests (false)." }, "securityLevels": { "type": "array", "title": "Security Levels", "description": "Security levels granted to the API Token.", "items": { "$ref": "#/components/schemas/SecurityLevel" } }, "timestamp": { "type": "number", "title": "Timestamp", "description": "Number of milliseconds from 1970-01-01T00:00:00.000Z as measured in UTC until the date/time when the API token was created." } }, "required": [ "type", "secureChannelRequired", "securityLevels", "timestamp" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/api-token/basic-token", "title": "basic-token", "type": "object", "properties": { "tokenHash": { "description": "Secure digest of the API token value", "type": "string", "x-ignition-non-secret": true } }, "required": [ "tokenHash" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic-token" ] }, "secureChannelRequired": { "type": "boolean", "title": "Secure Channel Required", "description": "Boolean indicating whether this token may only be used in secure HTTPS requests (true) or if it can be used in insecure HTTP requests (false)." }, "securityLevels": { "type": "array", "title": "Security Levels", "description": "Security levels granted to the API Token.", "items": { "$ref": "#/components/schemas/SecurityLevel" } }, "timestamp": { "type": "number", "title": "Timestamp", "description": "Number of milliseconds from 1970-01-01T00:00:00.000Z as measured in UTC until the date/time when the API token was created." } }, "required": [ "type", "secureChannelRequired", "securityLevels", "timestamp" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/api-token/basic-token", "title": "basic-token", "type": "object", "properties": { "tokenHash": { "description": "Secure digest of the API token value", "type": "string", "x-ignition-non-secret": true } }, "required": [ "tokenHash" ] } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/api-token/{name}/{signature}": { "delete": { "tags": [ "config-api-token" ], "summary": "Delete API Token", "description": "Delete a API Token resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/audit-profile": { "put": { "tags": [ "config-audit-profiles" ], "summary": "Modify Audit Profiles", "description": "Modify one or more Audit Profiles resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "database", "edge", "local", "remote" ] }, "retentionDays": { "description": "How long (in days) should audit records be kept? If set to 0, pruning will be disabled.", "default": 90, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Retention *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/audit-profile/database", "title": "database", "type": "object", "properties": { "databaseName": { "description": "The database connection to use to store audit events.", "x-form": { "fieldType": "REFERENCE", "category": "DATABASE SETTINGS", "label": "Database *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "pruneEnabled": { "description": "If false, this audit profile will never prune records, regardless of the retention field. Otherwise, the retention field will be followed.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Pruning Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "autoCreate": { "description": "If true, the table schema specified here will be automatically verified and created if necessary.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Auto Create" }, "type": "boolean", "x-ignition-non-secret": false }, "tableName": { "description": "The name of the table to store audit events.", "default": "audit_events", "x-form": { "fieldType": "TEXT", "category": "DATABASE SETTINGS", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "keyColumn": { "description": "The column name for an auto-incrementing primary key.", "default": "audit_events_id", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Key Column" }, "type": "string", "x-ignition-non-secret": true }, "timestampColumn": { "description": "The column to store the timestamp of the audit entry. Should be a SQL \"DATETIME\" type.", "default": "event_timestamp", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Timestamp Column" }, "type": "string", "x-ignition-non-secret": false }, "actorColumn": { "description": "The column in which to store the \"actor\" (usually the user) of the event.", "default": "actor", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Column" }, "type": "string", "x-ignition-non-secret": false }, "actorHostColumn": { "description": "The column in which to store the \"actor host\" (the hostname of the user's computer) of the event.", "default": "actor_host", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Host Column" }, "type": "string", "x-ignition-non-secret": false }, "actionColumn": { "description": "The column in which to store the name of the action that occurred.", "default": "action", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Column" }, "type": "string", "x-ignition-non-secret": false }, "actionTargetColumn": { "description": "The column in which to store the target of the event's action.", "default": "action_target", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Target Column" }, "type": "string", "x-ignition-non-secret": false }, "actionValueColumn": { "description": "The column in which to store the value of the event's action.", "default": "action_value", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Value Column" }, "type": "string", "x-ignition-non-secret": false }, "statusCodeColumn": { "description": "The column in which to store the operation result status of the action.", "default": "status_code", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Status Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingSystemColumn": { "description": "The column in which to store the originating system of the event.", "default": "originating_system", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating System Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingContextColumn": { "description": "The column in which to store the originating context of the event.", "default": "originating_context", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating Context Column" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "databaseName" ] }, { "$id": "ignition/audit-profile/edge", "title": "edge", "type": "object" }, { "$id": "ignition/audit-profile/local", "title": "local", "type": "object" }, { "$id": "ignition/audit-profile/remote", "title": "remote", "type": "object", "properties": { "targetSystem": { "description": "The remote system to send audit events to over the Gateway Network.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target System *" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "description": "The audit profile on the remote system to log events into.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target Profile *" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, audit events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote Gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "The maximum number of data points that can be sent per request. This value is used in conjunction with the store and forward settings to dictate how much data is sent at once. 0=unlimited", "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "targetSystem", "targetProfile" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "database", "edge", "local", "remote" ] }, "retentionDays": { "description": "How long (in days) should audit records be kept? If set to 0, pruning will be disabled.", "default": 90, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Retention *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/audit-profile/database", "title": "database", "type": "object", "properties": { "databaseName": { "description": "The database connection to use to store audit events.", "x-form": { "fieldType": "REFERENCE", "category": "DATABASE SETTINGS", "label": "Database *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "pruneEnabled": { "description": "If false, this audit profile will never prune records, regardless of the retention field. Otherwise, the retention field will be followed.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Pruning Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "autoCreate": { "description": "If true, the table schema specified here will be automatically verified and created if necessary.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Auto Create" }, "type": "boolean", "x-ignition-non-secret": false }, "tableName": { "description": "The name of the table to store audit events.", "default": "audit_events", "x-form": { "fieldType": "TEXT", "category": "DATABASE SETTINGS", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "keyColumn": { "description": "The column name for an auto-incrementing primary key.", "default": "audit_events_id", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Key Column" }, "type": "string", "x-ignition-non-secret": true }, "timestampColumn": { "description": "The column to store the timestamp of the audit entry. Should be a SQL \"DATETIME\" type.", "default": "event_timestamp", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Timestamp Column" }, "type": "string", "x-ignition-non-secret": false }, "actorColumn": { "description": "The column in which to store the \"actor\" (usually the user) of the event.", "default": "actor", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Column" }, "type": "string", "x-ignition-non-secret": false }, "actorHostColumn": { "description": "The column in which to store the \"actor host\" (the hostname of the user's computer) of the event.", "default": "actor_host", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Host Column" }, "type": "string", "x-ignition-non-secret": false }, "actionColumn": { "description": "The column in which to store the name of the action that occurred.", "default": "action", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Column" }, "type": "string", "x-ignition-non-secret": false }, "actionTargetColumn": { "description": "The column in which to store the target of the event's action.", "default": "action_target", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Target Column" }, "type": "string", "x-ignition-non-secret": false }, "actionValueColumn": { "description": "The column in which to store the value of the event's action.", "default": "action_value", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Value Column" }, "type": "string", "x-ignition-non-secret": false }, "statusCodeColumn": { "description": "The column in which to store the operation result status of the action.", "default": "status_code", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Status Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingSystemColumn": { "description": "The column in which to store the originating system of the event.", "default": "originating_system", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating System Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingContextColumn": { "description": "The column in which to store the originating context of the event.", "default": "originating_context", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating Context Column" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "databaseName" ] }, { "$id": "ignition/audit-profile/edge", "title": "edge", "type": "object" }, { "$id": "ignition/audit-profile/local", "title": "local", "type": "object" }, { "$id": "ignition/audit-profile/remote", "title": "remote", "type": "object", "properties": { "targetSystem": { "description": "The remote system to send audit events to over the Gateway Network.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target System *" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "description": "The audit profile on the remote system to log events into.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target Profile *" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, audit events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote Gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "The maximum number of data points that can be sent per request. This value is used in conjunction with the store and forward settings to dictate how much data is sent at once. 0=unlimited", "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "targetSystem", "targetProfile" ] } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-audit-profiles" ], "summary": "Create Audit Profiles", "description": "Create a new Audit Profiles resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "database", "edge", "local", "remote" ] }, "retentionDays": { "description": "How long (in days) should audit records be kept? If set to 0, pruning will be disabled.", "default": 90, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Retention *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/audit-profile/database", "title": "database", "type": "object", "properties": { "databaseName": { "description": "The database connection to use to store audit events.", "x-form": { "fieldType": "REFERENCE", "category": "DATABASE SETTINGS", "label": "Database *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "pruneEnabled": { "description": "If false, this audit profile will never prune records, regardless of the retention field. Otherwise, the retention field will be followed.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Pruning Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "autoCreate": { "description": "If true, the table schema specified here will be automatically verified and created if necessary.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Auto Create" }, "type": "boolean", "x-ignition-non-secret": false }, "tableName": { "description": "The name of the table to store audit events.", "default": "audit_events", "x-form": { "fieldType": "TEXT", "category": "DATABASE SETTINGS", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "keyColumn": { "description": "The column name for an auto-incrementing primary key.", "default": "audit_events_id", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Key Column" }, "type": "string", "x-ignition-non-secret": true }, "timestampColumn": { "description": "The column to store the timestamp of the audit entry. Should be a SQL \"DATETIME\" type.", "default": "event_timestamp", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Timestamp Column" }, "type": "string", "x-ignition-non-secret": false }, "actorColumn": { "description": "The column in which to store the \"actor\" (usually the user) of the event.", "default": "actor", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Column" }, "type": "string", "x-ignition-non-secret": false }, "actorHostColumn": { "description": "The column in which to store the \"actor host\" (the hostname of the user's computer) of the event.", "default": "actor_host", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Host Column" }, "type": "string", "x-ignition-non-secret": false }, "actionColumn": { "description": "The column in which to store the name of the action that occurred.", "default": "action", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Column" }, "type": "string", "x-ignition-non-secret": false }, "actionTargetColumn": { "description": "The column in which to store the target of the event's action.", "default": "action_target", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Target Column" }, "type": "string", "x-ignition-non-secret": false }, "actionValueColumn": { "description": "The column in which to store the value of the event's action.", "default": "action_value", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Value Column" }, "type": "string", "x-ignition-non-secret": false }, "statusCodeColumn": { "description": "The column in which to store the operation result status of the action.", "default": "status_code", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Status Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingSystemColumn": { "description": "The column in which to store the originating system of the event.", "default": "originating_system", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating System Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingContextColumn": { "description": "The column in which to store the originating context of the event.", "default": "originating_context", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating Context Column" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "databaseName" ] }, { "$id": "ignition/audit-profile/edge", "title": "edge", "type": "object" }, { "$id": "ignition/audit-profile/local", "title": "local", "type": "object" }, { "$id": "ignition/audit-profile/remote", "title": "remote", "type": "object", "properties": { "targetSystem": { "description": "The remote system to send audit events to over the Gateway Network.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target System *" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "description": "The audit profile on the remote system to log events into.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target Profile *" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, audit events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote Gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "The maximum number of data points that can be sent per request. This value is used in conjunction with the store and forward settings to dictate how much data is sent at once. 0=unlimited", "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "targetSystem", "targetProfile" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "database", "edge", "local", "remote" ] }, "retentionDays": { "description": "How long (in days) should audit records be kept? If set to 0, pruning will be disabled.", "default": 90, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Retention *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/audit-profile/database", "title": "database", "type": "object", "properties": { "databaseName": { "description": "The database connection to use to store audit events.", "x-form": { "fieldType": "REFERENCE", "category": "DATABASE SETTINGS", "label": "Database *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "pruneEnabled": { "description": "If false, this audit profile will never prune records, regardless of the retention field. Otherwise, the retention field will be followed.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Pruning Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "autoCreate": { "description": "If true, the table schema specified here will be automatically verified and created if necessary.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Auto Create" }, "type": "boolean", "x-ignition-non-secret": false }, "tableName": { "description": "The name of the table to store audit events.", "default": "audit_events", "x-form": { "fieldType": "TEXT", "category": "DATABASE SETTINGS", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "keyColumn": { "description": "The column name for an auto-incrementing primary key.", "default": "audit_events_id", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Key Column" }, "type": "string", "x-ignition-non-secret": true }, "timestampColumn": { "description": "The column to store the timestamp of the audit entry. Should be a SQL \"DATETIME\" type.", "default": "event_timestamp", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Timestamp Column" }, "type": "string", "x-ignition-non-secret": false }, "actorColumn": { "description": "The column in which to store the \"actor\" (usually the user) of the event.", "default": "actor", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Column" }, "type": "string", "x-ignition-non-secret": false }, "actorHostColumn": { "description": "The column in which to store the \"actor host\" (the hostname of the user's computer) of the event.", "default": "actor_host", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Host Column" }, "type": "string", "x-ignition-non-secret": false }, "actionColumn": { "description": "The column in which to store the name of the action that occurred.", "default": "action", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Column" }, "type": "string", "x-ignition-non-secret": false }, "actionTargetColumn": { "description": "The column in which to store the target of the event's action.", "default": "action_target", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Target Column" }, "type": "string", "x-ignition-non-secret": false }, "actionValueColumn": { "description": "The column in which to store the value of the event's action.", "default": "action_value", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Value Column" }, "type": "string", "x-ignition-non-secret": false }, "statusCodeColumn": { "description": "The column in which to store the operation result status of the action.", "default": "status_code", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Status Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingSystemColumn": { "description": "The column in which to store the originating system of the event.", "default": "originating_system", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating System Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingContextColumn": { "description": "The column in which to store the originating context of the event.", "default": "originating_context", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating Context Column" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "databaseName" ] }, { "$id": "ignition/audit-profile/edge", "title": "edge", "type": "object" }, { "$id": "ignition/audit-profile/local", "title": "local", "type": "object" }, { "$id": "ignition/audit-profile/remote", "title": "remote", "type": "object", "properties": { "targetSystem": { "description": "The remote system to send audit events to over the Gateway Network.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target System *" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "description": "The audit profile on the remote system to log events into.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target Profile *" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, audit events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote Gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "The maximum number of data points that can be sent per request. This value is used in conjunction with the store and forward settings to dictate how much data is sent at once. 0=unlimited", "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "targetSystem", "targetProfile" ] } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/audit-profile/{name}/{signature}": { "delete": { "tags": [ "config-audit-profiles" ], "summary": "Delete Audit Profiles", "description": "Delete a Audit Profiles resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/cobranding": { "put": { "tags": [ "config-perspective-branding" ], "summary": "Modify Brand Customization", "description": "Modify one or more Brand Customization resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "backgroundColor": { "type": "string", "x-ignition-non-secret": false }, "textColor": { "type": "string", "x-ignition-non-secret": false }, "buttonColor": { "type": "string", "x-ignition-non-secret": false }, "buttonTextColor": { "type": "string", "x-ignition-non-secret": false }, "logo": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "favicon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "appIcon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "logoType": { "type": "string", "x-ignition-non-secret": false }, "logoName": { "type": "string", "x-ignition-non-secret": false }, "faviconName": { "type": "string", "x-ignition-non-secret": false }, "appIconName": { "type": "string", "x-ignition-non-secret": false }, "faviconSize": { "type": "string", "x-ignition-non-secret": false }, "appIconSize": { "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "backgroundColor": { "type": "string", "x-ignition-non-secret": false }, "textColor": { "type": "string", "x-ignition-non-secret": false }, "buttonColor": { "type": "string", "x-ignition-non-secret": false }, "buttonTextColor": { "type": "string", "x-ignition-non-secret": false }, "logo": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "favicon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "appIcon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "logoType": { "type": "string", "x-ignition-non-secret": false }, "logoName": { "type": "string", "x-ignition-non-secret": false }, "faviconName": { "type": "string", "x-ignition-non-secret": false }, "appIconName": { "type": "string", "x-ignition-non-secret": false }, "faviconSize": { "type": "string", "x-ignition-non-secret": false }, "appIconSize": { "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-perspective-branding" ], "summary": "Create Brand Customization", "description": "Create the Brand Customization resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "backgroundColor": { "type": "string", "x-ignition-non-secret": false }, "textColor": { "type": "string", "x-ignition-non-secret": false }, "buttonColor": { "type": "string", "x-ignition-non-secret": false }, "buttonTextColor": { "type": "string", "x-ignition-non-secret": false }, "logo": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "favicon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "appIcon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "logoType": { "type": "string", "x-ignition-non-secret": false }, "logoName": { "type": "string", "x-ignition-non-secret": false }, "faviconName": { "type": "string", "x-ignition-non-secret": false }, "appIconName": { "type": "string", "x-ignition-non-secret": false }, "faviconSize": { "type": "string", "x-ignition-non-secret": false }, "appIconSize": { "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "backgroundColor": { "type": "string", "x-ignition-non-secret": false }, "textColor": { "type": "string", "x-ignition-non-secret": false }, "buttonColor": { "type": "string", "x-ignition-non-secret": false }, "buttonTextColor": { "type": "string", "x-ignition-non-secret": false }, "logo": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "favicon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "appIcon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "logoType": { "type": "string", "x-ignition-non-secret": false }, "logoName": { "type": "string", "x-ignition-non-secret": false }, "faviconName": { "type": "string", "x-ignition-non-secret": false }, "appIconName": { "type": "string", "x-ignition-non-secret": false }, "faviconSize": { "type": "string", "x-ignition-non-secret": false }, "appIconSize": { "type": "string", "x-ignition-non-secret": false } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/cobranding/{signature}": { "delete": { "tags": [ "config-perspective-branding" ], "summary": "Delete Brand Customization", "description": "Delete the Brand Customization resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/database-connection": { "put": { "tags": [ "config-databases" ], "summary": "Modify Database Connection", "description": "Modify one or more Database Connection resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "driver": { "type": "string", "x-ignition-non-secret": false }, "translator": { "type": "string", "x-ignition-non-secret": false }, "includeSchemaInTableName": { "type": "boolean", "x-ignition-non-secret": false }, "connectURL": { "type": "string", "x-ignition-non-secret": false }, "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "connectionProps": { "type": "string", "x-ignition-non-secret": false }, "connectionResetParams": { "type": "string", "x-ignition-non-secret": false }, "defaultTransactionLevel": { "type": "string", "enum": [ "DEFAULT", "READ_UNCOMMITTED", "READ_COMMITTED", "READ_REPEATABLE_READ", "SERIALIZABLE" ], "x-ignition-non-secret": false }, "poolInitSize": { "type": "number", "x-ignition-non-secret": false }, "poolMaxActive": { "type": "number", "x-ignition-non-secret": false }, "poolMaxIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMinIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMaxWait": { "type": "number", "x-ignition-non-secret": false }, "validationQuery": { "type": "string", "x-ignition-non-secret": false }, "testOnBorrow": { "type": "boolean", "x-ignition-non-secret": false }, "testOnReturn": { "type": "boolean", "x-ignition-non-secret": false }, "testWhileIdle": { "type": "boolean", "x-ignition-non-secret": false }, "evictionRate": { "type": "number", "x-ignition-non-secret": false }, "evictionTests": { "type": "number", "x-ignition-non-secret": false }, "evictionTime": { "type": "number", "x-ignition-non-secret": false }, "failoverProfile": { "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "type": "string", "enum": [ "STANDARD", "STICKY" ], "x-ignition-non-secret": false }, "slowQueryLogThreshold": { "type": "number", "x-ignition-non-secret": false }, "validationSleepTime": { "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "driver": { "type": "string", "x-ignition-non-secret": false }, "translator": { "type": "string", "x-ignition-non-secret": false }, "includeSchemaInTableName": { "type": "boolean", "x-ignition-non-secret": false }, "connectURL": { "type": "string", "x-ignition-non-secret": false }, "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "connectionProps": { "type": "string", "x-ignition-non-secret": false }, "connectionResetParams": { "type": "string", "x-ignition-non-secret": false }, "defaultTransactionLevel": { "type": "string", "enum": [ "DEFAULT", "READ_UNCOMMITTED", "READ_COMMITTED", "READ_REPEATABLE_READ", "SERIALIZABLE" ], "x-ignition-non-secret": false }, "poolInitSize": { "type": "number", "x-ignition-non-secret": false }, "poolMaxActive": { "type": "number", "x-ignition-non-secret": false }, "poolMaxIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMinIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMaxWait": { "type": "number", "x-ignition-non-secret": false }, "validationQuery": { "type": "string", "x-ignition-non-secret": false }, "testOnBorrow": { "type": "boolean", "x-ignition-non-secret": false }, "testOnReturn": { "type": "boolean", "x-ignition-non-secret": false }, "testWhileIdle": { "type": "boolean", "x-ignition-non-secret": false }, "evictionRate": { "type": "number", "x-ignition-non-secret": false }, "evictionTests": { "type": "number", "x-ignition-non-secret": false }, "evictionTime": { "type": "number", "x-ignition-non-secret": false }, "failoverProfile": { "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "type": "string", "enum": [ "STANDARD", "STICKY" ], "x-ignition-non-secret": false }, "slowQueryLogThreshold": { "type": "number", "x-ignition-non-secret": false }, "validationSleepTime": { "type": "number", "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-databases" ], "summary": "Create Database Connection", "description": "Create a new Database Connection resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "driver": { "type": "string", "x-ignition-non-secret": false }, "translator": { "type": "string", "x-ignition-non-secret": false }, "includeSchemaInTableName": { "type": "boolean", "x-ignition-non-secret": false }, "connectURL": { "type": "string", "x-ignition-non-secret": false }, "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "connectionProps": { "type": "string", "x-ignition-non-secret": false }, "connectionResetParams": { "type": "string", "x-ignition-non-secret": false }, "defaultTransactionLevel": { "type": "string", "enum": [ "DEFAULT", "READ_UNCOMMITTED", "READ_COMMITTED", "READ_REPEATABLE_READ", "SERIALIZABLE" ], "x-ignition-non-secret": false }, "poolInitSize": { "type": "number", "x-ignition-non-secret": false }, "poolMaxActive": { "type": "number", "x-ignition-non-secret": false }, "poolMaxIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMinIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMaxWait": { "type": "number", "x-ignition-non-secret": false }, "validationQuery": { "type": "string", "x-ignition-non-secret": false }, "testOnBorrow": { "type": "boolean", "x-ignition-non-secret": false }, "testOnReturn": { "type": "boolean", "x-ignition-non-secret": false }, "testWhileIdle": { "type": "boolean", "x-ignition-non-secret": false }, "evictionRate": { "type": "number", "x-ignition-non-secret": false }, "evictionTests": { "type": "number", "x-ignition-non-secret": false }, "evictionTime": { "type": "number", "x-ignition-non-secret": false }, "failoverProfile": { "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "type": "string", "enum": [ "STANDARD", "STICKY" ], "x-ignition-non-secret": false }, "slowQueryLogThreshold": { "type": "number", "x-ignition-non-secret": false }, "validationSleepTime": { "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "driver": { "type": "string", "x-ignition-non-secret": false }, "translator": { "type": "string", "x-ignition-non-secret": false }, "includeSchemaInTableName": { "type": "boolean", "x-ignition-non-secret": false }, "connectURL": { "type": "string", "x-ignition-non-secret": false }, "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "connectionProps": { "type": "string", "x-ignition-non-secret": false }, "connectionResetParams": { "type": "string", "x-ignition-non-secret": false }, "defaultTransactionLevel": { "type": "string", "enum": [ "DEFAULT", "READ_UNCOMMITTED", "READ_COMMITTED", "READ_REPEATABLE_READ", "SERIALIZABLE" ], "x-ignition-non-secret": false }, "poolInitSize": { "type": "number", "x-ignition-non-secret": false }, "poolMaxActive": { "type": "number", "x-ignition-non-secret": false }, "poolMaxIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMinIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMaxWait": { "type": "number", "x-ignition-non-secret": false }, "validationQuery": { "type": "string", "x-ignition-non-secret": false }, "testOnBorrow": { "type": "boolean", "x-ignition-non-secret": false }, "testOnReturn": { "type": "boolean", "x-ignition-non-secret": false }, "testWhileIdle": { "type": "boolean", "x-ignition-non-secret": false }, "evictionRate": { "type": "number", "x-ignition-non-secret": false }, "evictionTests": { "type": "number", "x-ignition-non-secret": false }, "evictionTime": { "type": "number", "x-ignition-non-secret": false }, "failoverProfile": { "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "type": "string", "enum": [ "STANDARD", "STICKY" ], "x-ignition-non-secret": false }, "slowQueryLogThreshold": { "type": "number", "x-ignition-non-secret": false }, "validationSleepTime": { "type": "number", "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/database-connection/{name}/{signature}": { "delete": { "tags": [ "config-databases" ], "summary": "Delete Database Connection", "description": "Delete a Database Connection resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/database-driver": { "put": { "tags": [ "config-databases" ], "summary": "Modify JDBC Driver", "description": "Modify one or more JDBC Driver resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "MYSQL", "POSTGRES", "MSSQL", "GENERIC", "ORACLE", "DB2", "FIREBIRD", "SQLITE" ], "x-ignition-non-secret": false }, "defaultTranslator": { "type": "string", "x-ignition-non-secret": false }, "classname": { "type": "string", "x-ignition-non-secret": false }, "urlFormat": { "type": "string", "x-ignition-non-secret": false }, "urlInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultProps": { "type": "string", "x-ignition-non-secret": false }, "defaultPropInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultValidationQuery": { "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "MYSQL", "POSTGRES", "MSSQL", "GENERIC", "ORACLE", "DB2", "FIREBIRD", "SQLITE" ], "x-ignition-non-secret": false }, "defaultTranslator": { "type": "string", "x-ignition-non-secret": false }, "classname": { "type": "string", "x-ignition-non-secret": false }, "urlFormat": { "type": "string", "x-ignition-non-secret": false }, "urlInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultProps": { "type": "string", "x-ignition-non-secret": false }, "defaultPropInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultValidationQuery": { "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-databases" ], "summary": "Create JDBC Driver", "description": "Create a new JDBC Driver resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "MYSQL", "POSTGRES", "MSSQL", "GENERIC", "ORACLE", "DB2", "FIREBIRD", "SQLITE" ], "x-ignition-non-secret": false }, "defaultTranslator": { "type": "string", "x-ignition-non-secret": false }, "classname": { "type": "string", "x-ignition-non-secret": false }, "urlFormat": { "type": "string", "x-ignition-non-secret": false }, "urlInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultProps": { "type": "string", "x-ignition-non-secret": false }, "defaultPropInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultValidationQuery": { "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "MYSQL", "POSTGRES", "MSSQL", "GENERIC", "ORACLE", "DB2", "FIREBIRD", "SQLITE" ], "x-ignition-non-secret": false }, "defaultTranslator": { "type": "string", "x-ignition-non-secret": false }, "classname": { "type": "string", "x-ignition-non-secret": false }, "urlFormat": { "type": "string", "x-ignition-non-secret": false }, "urlInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultProps": { "type": "string", "x-ignition-non-secret": false }, "defaultPropInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultValidationQuery": { "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/database-driver/{name}/{signature}": { "delete": { "tags": [ "config-databases" ], "summary": "Delete JDBC Driver", "description": "Delete a JDBC Driver resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/database-translator": { "put": { "tags": [ "config-databases" ], "summary": "Modify Database Translator", "description": "Modify one or more Database Translator resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "createTable": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncSequence": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncTrigger": { "type": "string", "x-ignition-non-secret": false }, "createIndex": { "type": "string", "x-ignition-non-secret": false }, "autoIncTypeDef": { "type": "string", "x-ignition-non-secret": false }, "alterTable": { "type": "string", "x-ignition-non-secret": false }, "alterTableColumnDef": { "type": "string", "x-ignition-non-secret": false }, "primaryKeyDef": { "type": "string", "x-ignition-non-secret": true }, "limit": { "type": "string", "x-ignition-non-secret": false }, "limitClausePosition": { "type": "string", "enum": [ "Front", "Back", "Where", "Wrap" ], "x-ignition-non-secret": false }, "currentTimeQuery": { "type": "string", "x-ignition-non-secret": false }, "columnQuoteChar": { "type": "string", "x-ignition-non-secret": false }, "supportsRGK": { "type": "boolean", "x-ignition-non-secret": false }, "fetchKeyQuery": { "type": "string", "x-ignition-non-secret": true }, "tableListFilter": { "type": "string", "x-ignition-non-secret": false }, "i1Type": { "type": "string", "x-ignition-non-secret": false }, "i2Type": { "type": "string", "x-ignition-non-secret": false }, "i4Type": { "type": "string", "x-ignition-non-secret": false }, "i8Type": { "type": "string", "x-ignition-non-secret": false }, "boolType": { "type": "string", "x-ignition-non-secret": false }, "datetimeType": { "type": "string", "x-ignition-non-secret": false }, "r4Type": { "type": "string", "x-ignition-non-secret": false }, "r8Type": { "type": "string", "x-ignition-non-secret": false }, "stringType": { "type": "string", "x-ignition-non-secret": false }, "blobType": { "type": "string", "x-ignition-non-secret": false }, "textType": { "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "createTable": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncSequence": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncTrigger": { "type": "string", "x-ignition-non-secret": false }, "createIndex": { "type": "string", "x-ignition-non-secret": false }, "autoIncTypeDef": { "type": "string", "x-ignition-non-secret": false }, "alterTable": { "type": "string", "x-ignition-non-secret": false }, "alterTableColumnDef": { "type": "string", "x-ignition-non-secret": false }, "primaryKeyDef": { "type": "string", "x-ignition-non-secret": true }, "limit": { "type": "string", "x-ignition-non-secret": false }, "limitClausePosition": { "type": "string", "enum": [ "Front", "Back", "Where", "Wrap" ], "x-ignition-non-secret": false }, "currentTimeQuery": { "type": "string", "x-ignition-non-secret": false }, "columnQuoteChar": { "type": "string", "x-ignition-non-secret": false }, "supportsRGK": { "type": "boolean", "x-ignition-non-secret": false }, "fetchKeyQuery": { "type": "string", "x-ignition-non-secret": true }, "tableListFilter": { "type": "string", "x-ignition-non-secret": false }, "i1Type": { "type": "string", "x-ignition-non-secret": false }, "i2Type": { "type": "string", "x-ignition-non-secret": false }, "i4Type": { "type": "string", "x-ignition-non-secret": false }, "i8Type": { "type": "string", "x-ignition-non-secret": false }, "boolType": { "type": "string", "x-ignition-non-secret": false }, "datetimeType": { "type": "string", "x-ignition-non-secret": false }, "r4Type": { "type": "string", "x-ignition-non-secret": false }, "r8Type": { "type": "string", "x-ignition-non-secret": false }, "stringType": { "type": "string", "x-ignition-non-secret": false }, "blobType": { "type": "string", "x-ignition-non-secret": false }, "textType": { "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-databases" ], "summary": "Create Database Translator", "description": "Create a new Database Translator resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "createTable": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncSequence": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncTrigger": { "type": "string", "x-ignition-non-secret": false }, "createIndex": { "type": "string", "x-ignition-non-secret": false }, "autoIncTypeDef": { "type": "string", "x-ignition-non-secret": false }, "alterTable": { "type": "string", "x-ignition-non-secret": false }, "alterTableColumnDef": { "type": "string", "x-ignition-non-secret": false }, "primaryKeyDef": { "type": "string", "x-ignition-non-secret": true }, "limit": { "type": "string", "x-ignition-non-secret": false }, "limitClausePosition": { "type": "string", "enum": [ "Front", "Back", "Where", "Wrap" ], "x-ignition-non-secret": false }, "currentTimeQuery": { "type": "string", "x-ignition-non-secret": false }, "columnQuoteChar": { "type": "string", "x-ignition-non-secret": false }, "supportsRGK": { "type": "boolean", "x-ignition-non-secret": false }, "fetchKeyQuery": { "type": "string", "x-ignition-non-secret": true }, "tableListFilter": { "type": "string", "x-ignition-non-secret": false }, "i1Type": { "type": "string", "x-ignition-non-secret": false }, "i2Type": { "type": "string", "x-ignition-non-secret": false }, "i4Type": { "type": "string", "x-ignition-non-secret": false }, "i8Type": { "type": "string", "x-ignition-non-secret": false }, "boolType": { "type": "string", "x-ignition-non-secret": false }, "datetimeType": { "type": "string", "x-ignition-non-secret": false }, "r4Type": { "type": "string", "x-ignition-non-secret": false }, "r8Type": { "type": "string", "x-ignition-non-secret": false }, "stringType": { "type": "string", "x-ignition-non-secret": false }, "blobType": { "type": "string", "x-ignition-non-secret": false }, "textType": { "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "createTable": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncSequence": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncTrigger": { "type": "string", "x-ignition-non-secret": false }, "createIndex": { "type": "string", "x-ignition-non-secret": false }, "autoIncTypeDef": { "type": "string", "x-ignition-non-secret": false }, "alterTable": { "type": "string", "x-ignition-non-secret": false }, "alterTableColumnDef": { "type": "string", "x-ignition-non-secret": false }, "primaryKeyDef": { "type": "string", "x-ignition-non-secret": true }, "limit": { "type": "string", "x-ignition-non-secret": false }, "limitClausePosition": { "type": "string", "enum": [ "Front", "Back", "Where", "Wrap" ], "x-ignition-non-secret": false }, "currentTimeQuery": { "type": "string", "x-ignition-non-secret": false }, "columnQuoteChar": { "type": "string", "x-ignition-non-secret": false }, "supportsRGK": { "type": "boolean", "x-ignition-non-secret": false }, "fetchKeyQuery": { "type": "string", "x-ignition-non-secret": true }, "tableListFilter": { "type": "string", "x-ignition-non-secret": false }, "i1Type": { "type": "string", "x-ignition-non-secret": false }, "i2Type": { "type": "string", "x-ignition-non-secret": false }, "i4Type": { "type": "string", "x-ignition-non-secret": false }, "i8Type": { "type": "string", "x-ignition-non-secret": false }, "boolType": { "type": "string", "x-ignition-non-secret": false }, "datetimeType": { "type": "string", "x-ignition-non-secret": false }, "r4Type": { "type": "string", "x-ignition-non-secret": false }, "r8Type": { "type": "string", "x-ignition-non-secret": false }, "stringType": { "type": "string", "x-ignition-non-secret": false }, "blobType": { "type": "string", "x-ignition-non-secret": false }, "textType": { "type": "string", "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/database-translator/{name}/{signature}": { "delete": { "tags": [ "config-databases" ], "summary": "Delete Database Translator", "description": "Delete a Database Translator resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/edge-system-properties": { "put": { "tags": [ "config-edge-system-properties" ], "summary": "Modify Edge System Properties", "description": "Modify one or more Edge System Properties resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "projectName": { "default": "Edge", "description": "The name of the default Edge project. Only one project can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "tagProvider": { "description": "The tag provider to be used for Edge. Only one realtime tag provider can exist in an Edge gateway.\n", "default": "edge", "type": "string", "x-ignition-non-secret": false }, "historianName": { "default": "Edge Historian", "description": "The name of the default Edge historian. Only one historian can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "visualizationName": { "default": "VISION", "type": "string", "enum": [ "VISION", "PERSPECTIVE" ], "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "projectName": { "default": "Edge", "description": "The name of the default Edge project. Only one project can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "tagProvider": { "description": "The tag provider to be used for Edge. Only one realtime tag provider can exist in an Edge gateway.\n", "default": "edge", "type": "string", "x-ignition-non-secret": false }, "historianName": { "default": "Edge Historian", "description": "The name of the default Edge historian. Only one historian can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "visualizationName": { "default": "VISION", "type": "string", "enum": [ "VISION", "PERSPECTIVE" ], "x-ignition-non-secret": false } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-edge-system-properties" ], "summary": "Create Edge System Properties", "description": "Create the Edge System Properties resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "projectName": { "default": "Edge", "description": "The name of the default Edge project. Only one project can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "tagProvider": { "description": "The tag provider to be used for Edge. Only one realtime tag provider can exist in an Edge gateway.\n", "default": "edge", "type": "string", "x-ignition-non-secret": false }, "historianName": { "default": "Edge Historian", "description": "The name of the default Edge historian. Only one historian can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "visualizationName": { "default": "VISION", "type": "string", "enum": [ "VISION", "PERSPECTIVE" ], "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "projectName": { "default": "Edge", "description": "The name of the default Edge project. Only one project can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "tagProvider": { "description": "The tag provider to be used for Edge. Only one realtime tag provider can exist in an Edge gateway.\n", "default": "edge", "type": "string", "x-ignition-non-secret": false }, "historianName": { "default": "Edge Historian", "description": "The name of the default Edge historian. Only one historian can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "visualizationName": { "default": "VISION", "type": "string", "enum": [ "VISION", "PERSPECTIVE" ], "x-ignition-non-secret": false } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/edge-system-properties/{signature}": { "delete": { "tags": [ "config-edge-system-properties" ], "summary": "Delete Edge System Properties", "description": "Delete the Edge System Properties resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/email-profile": { "put": { "tags": [ "config-email-profile" ], "summary": "Modify Email Profile Settings", "description": "Modify one or more Email Profile Settings resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "smtp.classic", "smtp.oauth2" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/email-profile/smtp.classic", "title": "smtp.classic", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "SMTP SERVER SETTINGS", "label": "Port" }, "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use SSL/TLS port" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use STARTTLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "The username for logging into the email server.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Username", "isNullable": true }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for logging into the email server.", "x-form": { "fieldType": "SECRET", "category": "SMTP SERVER SETTINGS", "label": "Password *" } } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "default": "TLSv1.2", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "SSL Protocols" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "settings" ] }, { "$id": "ignition/email-profile/smtp.oauth2", "title": "smtp.oauth2", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "oAuth2": { "description": "OAuth2 Settings", "type": "object", "properties": { "username": { "description": "The username that the Gateway will use along with the access token which together make up the credential in the SMTP protocol's XOAUTH2 SASL authentication mechanism.", "type": "string", "x-ignition-non-secret": false }, "oAuth2Client": { "description": "The name of the OAuth2 Client which will be used by this Email Profile to obtain access tokens.", "type": "string", "x-ignition-non-secret": false }, "interactive": { "description": "If enabled, user interaction is required to obtain access and refresh tokens (3-legged OAuth 2.0 flow). If disabled, user interaction is not required to obtain access tokens - the Gateway will obtain access tokens using its own client credentials (2-legged OAuth 2.0 flow).", "type": "boolean", "x-ignition-non-secret": false }, "scope": { "description": "The OAuth 2.0 scope values representing the access token's set of permissions requested by the Gateway.", "type": "array", "items": { "type": "string", "scope": "string" }, "x-ignition-non-secret": false } }, "required": [ "username", "oAuth2Client", "interactive" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advancedOAuth2": { "description": "Advanced OAuth2 Settings", "type": "object", "properties": { "accessTokenTimeout": { "description": "Amount of time in seconds to wait for a valid access token before giving up on sending an email. Values less than or equal to zero will cause the profile to expect a valid access token to be available immediately and will fail fast if one is not available at the time an email needs to be sent.", "type": "number", "x-ignition-non-secret": true }, "defaultAccessTokenExpiration": { "description": "The amount of time in seconds before an access token expires by default. This value only applies for access tokens which do not have an explicit expiration from the authorization server. Values less than or equal to zero means access tokens do not expire by default.", "type": "number", "x-ignition-non-secret": true }, "refreshBeforeExpiration": { "description": "The amount of time in seconds before an access token expires when a new token should be requested. Values less than or equal to zero results in new access token requests exactly when the last access token expires.", "type": "number", "x-ignition-non-secret": false }, "additionalAuthorizationRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 authorization request (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "additionalAuthorizationCodeAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using an authorization code (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalClientCredentialsAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using client credentials (non-interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalRefreshTokenAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using a refresh token (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true } }, "x-ignition-non-secret": false } }, "required": [ "settings", "oAuth2" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "smtp.classic", "smtp.oauth2" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/email-profile/smtp.classic", "title": "smtp.classic", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "SMTP SERVER SETTINGS", "label": "Port" }, "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use SSL/TLS port" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use STARTTLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "The username for logging into the email server.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Username", "isNullable": true }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for logging into the email server.", "x-form": { "fieldType": "SECRET", "category": "SMTP SERVER SETTINGS", "label": "Password *" } } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "default": "TLSv1.2", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "SSL Protocols" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "settings" ] }, { "$id": "ignition/email-profile/smtp.oauth2", "title": "smtp.oauth2", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "oAuth2": { "description": "OAuth2 Settings", "type": "object", "properties": { "username": { "description": "The username that the Gateway will use along with the access token which together make up the credential in the SMTP protocol's XOAUTH2 SASL authentication mechanism.", "type": "string", "x-ignition-non-secret": false }, "oAuth2Client": { "description": "The name of the OAuth2 Client which will be used by this Email Profile to obtain access tokens.", "type": "string", "x-ignition-non-secret": false }, "interactive": { "description": "If enabled, user interaction is required to obtain access and refresh tokens (3-legged OAuth 2.0 flow). If disabled, user interaction is not required to obtain access tokens - the Gateway will obtain access tokens using its own client credentials (2-legged OAuth 2.0 flow).", "type": "boolean", "x-ignition-non-secret": false }, "scope": { "description": "The OAuth 2.0 scope values representing the access token's set of permissions requested by the Gateway.", "type": "array", "items": { "type": "string", "scope": "string" }, "x-ignition-non-secret": false } }, "required": [ "username", "oAuth2Client", "interactive" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advancedOAuth2": { "description": "Advanced OAuth2 Settings", "type": "object", "properties": { "accessTokenTimeout": { "description": "Amount of time in seconds to wait for a valid access token before giving up on sending an email. Values less than or equal to zero will cause the profile to expect a valid access token to be available immediately and will fail fast if one is not available at the time an email needs to be sent.", "type": "number", "x-ignition-non-secret": true }, "defaultAccessTokenExpiration": { "description": "The amount of time in seconds before an access token expires by default. This value only applies for access tokens which do not have an explicit expiration from the authorization server. Values less than or equal to zero means access tokens do not expire by default.", "type": "number", "x-ignition-non-secret": true }, "refreshBeforeExpiration": { "description": "The amount of time in seconds before an access token expires when a new token should be requested. Values less than or equal to zero results in new access token requests exactly when the last access token expires.", "type": "number", "x-ignition-non-secret": false }, "additionalAuthorizationRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 authorization request (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "additionalAuthorizationCodeAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using an authorization code (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalClientCredentialsAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using client credentials (non-interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalRefreshTokenAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using a refresh token (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true } }, "x-ignition-non-secret": false } }, "required": [ "settings", "oAuth2" ] } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-email-profile" ], "summary": "Create Email Profile Settings", "description": "Create a new Email Profile Settings resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "smtp.classic", "smtp.oauth2" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/email-profile/smtp.classic", "title": "smtp.classic", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "SMTP SERVER SETTINGS", "label": "Port" }, "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use SSL/TLS port" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use STARTTLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "The username for logging into the email server.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Username", "isNullable": true }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for logging into the email server.", "x-form": { "fieldType": "SECRET", "category": "SMTP SERVER SETTINGS", "label": "Password *" } } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "default": "TLSv1.2", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "SSL Protocols" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "settings" ] }, { "$id": "ignition/email-profile/smtp.oauth2", "title": "smtp.oauth2", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "oAuth2": { "description": "OAuth2 Settings", "type": "object", "properties": { "username": { "description": "The username that the Gateway will use along with the access token which together make up the credential in the SMTP protocol's XOAUTH2 SASL authentication mechanism.", "type": "string", "x-ignition-non-secret": false }, "oAuth2Client": { "description": "The name of the OAuth2 Client which will be used by this Email Profile to obtain access tokens.", "type": "string", "x-ignition-non-secret": false }, "interactive": { "description": "If enabled, user interaction is required to obtain access and refresh tokens (3-legged OAuth 2.0 flow). If disabled, user interaction is not required to obtain access tokens - the Gateway will obtain access tokens using its own client credentials (2-legged OAuth 2.0 flow).", "type": "boolean", "x-ignition-non-secret": false }, "scope": { "description": "The OAuth 2.0 scope values representing the access token's set of permissions requested by the Gateway.", "type": "array", "items": { "type": "string", "scope": "string" }, "x-ignition-non-secret": false } }, "required": [ "username", "oAuth2Client", "interactive" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advancedOAuth2": { "description": "Advanced OAuth2 Settings", "type": "object", "properties": { "accessTokenTimeout": { "description": "Amount of time in seconds to wait for a valid access token before giving up on sending an email. Values less than or equal to zero will cause the profile to expect a valid access token to be available immediately and will fail fast if one is not available at the time an email needs to be sent.", "type": "number", "x-ignition-non-secret": true }, "defaultAccessTokenExpiration": { "description": "The amount of time in seconds before an access token expires by default. This value only applies for access tokens which do not have an explicit expiration from the authorization server. Values less than or equal to zero means access tokens do not expire by default.", "type": "number", "x-ignition-non-secret": true }, "refreshBeforeExpiration": { "description": "The amount of time in seconds before an access token expires when a new token should be requested. Values less than or equal to zero results in new access token requests exactly when the last access token expires.", "type": "number", "x-ignition-non-secret": false }, "additionalAuthorizationRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 authorization request (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "additionalAuthorizationCodeAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using an authorization code (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalClientCredentialsAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using client credentials (non-interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalRefreshTokenAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using a refresh token (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true } }, "x-ignition-non-secret": false } }, "required": [ "settings", "oAuth2" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "smtp.classic", "smtp.oauth2" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/email-profile/smtp.classic", "title": "smtp.classic", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "SMTP SERVER SETTINGS", "label": "Port" }, "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use SSL/TLS port" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use STARTTLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "The username for logging into the email server.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Username", "isNullable": true }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for logging into the email server.", "x-form": { "fieldType": "SECRET", "category": "SMTP SERVER SETTINGS", "label": "Password *" } } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "default": "TLSv1.2", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "SSL Protocols" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "settings" ] }, { "$id": "ignition/email-profile/smtp.oauth2", "title": "smtp.oauth2", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "oAuth2": { "description": "OAuth2 Settings", "type": "object", "properties": { "username": { "description": "The username that the Gateway will use along with the access token which together make up the credential in the SMTP protocol's XOAUTH2 SASL authentication mechanism.", "type": "string", "x-ignition-non-secret": false }, "oAuth2Client": { "description": "The name of the OAuth2 Client which will be used by this Email Profile to obtain access tokens.", "type": "string", "x-ignition-non-secret": false }, "interactive": { "description": "If enabled, user interaction is required to obtain access and refresh tokens (3-legged OAuth 2.0 flow). If disabled, user interaction is not required to obtain access tokens - the Gateway will obtain access tokens using its own client credentials (2-legged OAuth 2.0 flow).", "type": "boolean", "x-ignition-non-secret": false }, "scope": { "description": "The OAuth 2.0 scope values representing the access token's set of permissions requested by the Gateway.", "type": "array", "items": { "type": "string", "scope": "string" }, "x-ignition-non-secret": false } }, "required": [ "username", "oAuth2Client", "interactive" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advancedOAuth2": { "description": "Advanced OAuth2 Settings", "type": "object", "properties": { "accessTokenTimeout": { "description": "Amount of time in seconds to wait for a valid access token before giving up on sending an email. Values less than or equal to zero will cause the profile to expect a valid access token to be available immediately and will fail fast if one is not available at the time an email needs to be sent.", "type": "number", "x-ignition-non-secret": true }, "defaultAccessTokenExpiration": { "description": "The amount of time in seconds before an access token expires by default. This value only applies for access tokens which do not have an explicit expiration from the authorization server. Values less than or equal to zero means access tokens do not expire by default.", "type": "number", "x-ignition-non-secret": true }, "refreshBeforeExpiration": { "description": "The amount of time in seconds before an access token expires when a new token should be requested. Values less than or equal to zero results in new access token requests exactly when the last access token expires.", "type": "number", "x-ignition-non-secret": false }, "additionalAuthorizationRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 authorization request (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "additionalAuthorizationCodeAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using an authorization code (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalClientCredentialsAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using client credentials (non-interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalRefreshTokenAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using a refresh token (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true } }, "x-ignition-non-secret": false } }, "required": [ "settings", "oAuth2" ] } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/email-profile/{name}/{signature}": { "delete": { "tags": [ "config-email-profile" ], "summary": "Delete Email Profile Settings", "description": "Delete a Email Profile Settings resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/gateway-network-incoming/{name}/{signature}": { "delete": { "tags": [ "config-gateway-network" ], "summary": "Delete Incoming Connection Settings", "description": "Delete a Incoming Connection Settings resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/gateway-network-outgoing": { "put": { "tags": [ "config-gateway-network" ], "summary": "Modify Outgoing Connection Settings", "description": "Modify one or more Outgoing Connection Settings resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "host": { "description": "The address of the remote server, not including the port.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "The port of the remote server.", "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Whether to use SSL for the connection.", "type": "boolean", "x-ignition-non-secret": false }, "pingRateMillis": { "description": "How often, in milliseconds, to send a ping to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "pingTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.", "type": "number", "x-ignition-non-secret": false }, "pingMaxMissed": { "description": "The amount of missed pings that will force the connection to be considered faulted.", "type": "number", "x-ignition-non-secret": false }, "wsTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a new web socket to connect to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to establish an HTTP connection to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to read or send HTTP data to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "sendThreads": { "description": "The maximum number of threads that will be used to upload messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false }, "receiveThreads": { "description": "The maximum number of threads that will be used to download messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "host", "port", "useSSL" ] }, "backupConfig": { "type": "object", "properties": { "host": { "description": "The address of the remote server, not including the port.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "The port of the remote server.", "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Whether to use SSL for the connection.", "type": "boolean", "x-ignition-non-secret": false }, "pingRateMillis": { "description": "How often, in milliseconds, to send a ping to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "pingTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.", "type": "number", "x-ignition-non-secret": false }, "pingMaxMissed": { "description": "The amount of missed pings that will force the connection to be considered faulted.", "type": "number", "x-ignition-non-secret": false }, "wsTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a new web socket to connect to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to establish an HTTP connection to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to read or send HTTP data to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "sendThreads": { "description": "The maximum number of threads that will be used to upload messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false }, "receiveThreads": { "description": "The maximum number of threads that will be used to download messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "host", "port", "useSSL" ] } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-gateway-network" ], "summary": "Create Outgoing Connection Settings", "description": "Create a new Outgoing Connection Settings resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "host": { "description": "The address of the remote server, not including the port.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "The port of the remote server.", "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Whether to use SSL for the connection.", "type": "boolean", "x-ignition-non-secret": false }, "pingRateMillis": { "description": "How often, in milliseconds, to send a ping to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "pingTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.", "type": "number", "x-ignition-non-secret": false }, "pingMaxMissed": { "description": "The amount of missed pings that will force the connection to be considered faulted.", "type": "number", "x-ignition-non-secret": false }, "wsTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a new web socket to connect to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to establish an HTTP connection to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to read or send HTTP data to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "sendThreads": { "description": "The maximum number of threads that will be used to upload messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false }, "receiveThreads": { "description": "The maximum number of threads that will be used to download messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "host", "port", "useSSL" ] }, "backupConfig": { "type": "object", "properties": { "host": { "description": "The address of the remote server, not including the port.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "The port of the remote server.", "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Whether to use SSL for the connection.", "type": "boolean", "x-ignition-non-secret": false }, "pingRateMillis": { "description": "How often, in milliseconds, to send a ping to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "pingTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.", "type": "number", "x-ignition-non-secret": false }, "pingMaxMissed": { "description": "The amount of missed pings that will force the connection to be considered faulted.", "type": "number", "x-ignition-non-secret": false }, "wsTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a new web socket to connect to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to establish an HTTP connection to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to read or send HTTP data to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "sendThreads": { "description": "The maximum number of threads that will be used to upload messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false }, "receiveThreads": { "description": "The maximum number of threads that will be used to download messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "host", "port", "useSSL" ] } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/gateway-network-outgoing/{name}/{signature}": { "delete": { "tags": [ "config-gateway-network" ], "summary": "Delete Outgoing Connection Settings", "description": "Delete a Outgoing Connection Settings resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/gateway-network-proxy-rules": { "put": { "tags": [ "config-gateway-network" ], "summary": "Modify Proxy Rules", "description": "Modify one or more Proxy Rules resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "proxyRules": { "type": "array", "items": { "properties": { "sourceGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "destinationGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "action": { "type": "string", "description": "The action to take when a proxy route between a source gateway and a destination gateway matches this rule. If set to Deny, the proxy route will not be reported to remote gateways. Valid values are 'Allow' and 'Deny'." }, "description": { "type": "string", "description": "A description of the proxy rule." } }, "required": [ "sourceGateways", "destinationGateways" ] }, "description": "A list of proxy rules. Rule rank is determined by the list order, with rules at the beginning of the list taking precedence over later ones." } } }, "backupConfig": { "properties": { "proxyRules": { "type": "array", "items": { "properties": { "sourceGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "destinationGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "action": { "type": "string", "description": "The action to take when a proxy route between a source gateway and a destination gateway matches this rule. If set to Deny, the proxy route will not be reported to remote gateways. Valid values are 'Allow' and 'Deny'." }, "description": { "type": "string", "description": "A description of the proxy rule." } }, "required": [ "sourceGateways", "destinationGateways" ] }, "description": "A list of proxy rules. Rule rank is determined by the list order, with rules at the beginning of the list taking precedence over later ones." } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-gateway-network" ], "summary": "Create Proxy Rules", "description": "Create the Proxy Rules resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "proxyRules": { "type": "array", "items": { "properties": { "sourceGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "destinationGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "action": { "type": "string", "description": "The action to take when a proxy route between a source gateway and a destination gateway matches this rule. If set to Deny, the proxy route will not be reported to remote gateways. Valid values are 'Allow' and 'Deny'." }, "description": { "type": "string", "description": "A description of the proxy rule." } }, "required": [ "sourceGateways", "destinationGateways" ] }, "description": "A list of proxy rules. Rule rank is determined by the list order, with rules at the beginning of the list taking precedence over later ones." } } }, "backupConfig": { "properties": { "proxyRules": { "type": "array", "items": { "properties": { "sourceGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "destinationGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "action": { "type": "string", "description": "The action to take when a proxy route between a source gateway and a destination gateway matches this rule. If set to Deny, the proxy route will not be reported to remote gateways. Valid values are 'Allow' and 'Deny'." }, "description": { "type": "string", "description": "A description of the proxy rule." } }, "required": [ "sourceGateways", "destinationGateways" ] }, "description": "A list of proxy rules. Rule rank is determined by the list order, with rules at the beginning of the list taking precedence over later ones." } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/gateway-network-proxy-rules/{signature}": { "delete": { "tags": [ "config-gateway-network" ], "summary": "Delete Proxy Rules", "description": "Delete the Proxy Rules resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/gateway-network-queue-settings": { "put": { "tags": [ "config-gateway-network" ], "summary": "Modify Queue Settings", "description": "Modify one or more Queue Settings resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "queueSettings": { "type": "array", "items": { "properties": { "queueId": { "type": "string", "description": "The queue ID" }, "maxActive": { "type": "integer", "description": "The maximum number of active messages allowed in the queue" }, "timeoutMillis": { "type": "number", "description": "The timeout in milliseconds for messages in the queue" } } }, "description": "A list of queue settings." } } }, "backupConfig": { "properties": { "queueSettings": { "type": "array", "items": { "properties": { "queueId": { "type": "string", "description": "The queue ID" }, "maxActive": { "type": "integer", "description": "The maximum number of active messages allowed in the queue" }, "timeoutMillis": { "type": "number", "description": "The timeout in milliseconds for messages in the queue" } } }, "description": "A list of queue settings." } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-gateway-network" ], "summary": "Create Queue Settings", "description": "Create the Queue Settings resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "queueSettings": { "type": "array", "items": { "properties": { "queueId": { "type": "string", "description": "The queue ID" }, "maxActive": { "type": "integer", "description": "The maximum number of active messages allowed in the queue" }, "timeoutMillis": { "type": "number", "description": "The timeout in milliseconds for messages in the queue" } } }, "description": "A list of queue settings." } } }, "backupConfig": { "properties": { "queueSettings": { "type": "array", "items": { "properties": { "queueId": { "type": "string", "description": "The queue ID" }, "maxActive": { "type": "integer", "description": "The maximum number of active messages allowed in the queue" }, "timeoutMillis": { "type": "number", "description": "The timeout in milliseconds for messages in the queue" } } }, "description": "A list of queue settings." } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/gateway-network-queue-settings/{signature}": { "delete": { "tags": [ "config-gateway-network" ], "summary": "Delete Queue Settings", "description": "Delete the Queue Settings resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/gateway-network-settings": { "put": { "tags": [ "config-gateway-network" ], "summary": "Modify General Gateway Network Settings", "description": "Modify one or more General Gateway Network Settings resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "requireSSL": { "default": true, "description": "If true, only connections that use SSL to encrypt traffic will be allowed. This setting only applies to incoming connections.\n", "type": "boolean", "x-ignition-non-secret": false }, "requireTwoWayAuth": { "default": true, "description": "Enforces two-way SSL authentication. If true, you will need to install the remote machine's certificate on this machine, in addition to manual approval of this machine's certificate on the remote machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "receiveQueueMax": { "default": 100, "description": "Number of received messages that can be held until they are processed by the local system. When this capacity is exceeded, new messages are rejected and errors are reported to the remote gateway. Applies to incoming connections.\n", "type": "number", "x-ignition-non-secret": false }, "overloadWaitSecs": { "default": 60, "description": "The number of seconds that a remote machine is instructed to wait before resuming message delivery. This setting is used when an overload is detected on the local machine.\n", "type": "number", "x-ignition-non-secret": false }, "allowIncoming": { "default": true, "description": "If false, only outward connections defined on this gateway will be allowed.\n", "type": "boolean", "x-ignition-non-secret": false }, "securityPolicy": { "default": "ApprovedOnly", "description": "Dictates what connections are allowed. If set to 'Approved', incoming connections must be approved from the Incoming Connections page.\n", "type": "string", "enum": [ "Unrestricted", "ApprovedOnly", "SpecifiedList" ], "x-ignition-non-secret": false }, "whitelist": { "default": "", "description": "If connection policy is set to Specified List, this is the comma-separated list of ${GATEWAY} names which will be allowed to connect.\n", "type": "string", "x-ignition-non-secret": false }, "allowedProxyHops": { "default": 0, "description": "The maximum number of proxy hops which could be used to reach the destination Gateway. Any number less than or equal to zero is equivalent to no proxy hops allowed.\n", "type": "number", "x-ignition-non-secret": false }, "websocketSessionIdleTimeout": { "default": 30000, "description": "The maximum number of milliseconds that a websocket is allowed to remain idle before it is closed. This value should always be set higher than outgoing connection ping rates to avoid premature connection termination.\n", "type": "number", "x-ignition-non-secret": false }, "tempFilesMaxAgeHours": { "default": 24, "description": "The maximum number of hours that a gateway network temporary file will be retained. Files older than this value will be purged. Set to 0 to disable cleaning of temporary files.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingRateMillis": { "default": 5000, "description": "How often, in milliseconds, to send a ping to a remote machine. This will allow an incoming connection's health to be monitored. Set to 0 to disable pings sent from an incoming connection.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingTimeoutMillis": { "default": 300, "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingMaxMissed": { "default": 12, "description": "The amount of missed pings that will force an incoming connection to be considered faulted.\n", "type": "number", "x-ignition-non-secret": false }, "proxyInterceptServiceCalls": { "default": false, "description": "If enabled on a proxy gateway, this setting will intercept recurring service enumeration calls that the proxy gateway normally passes along. If the proxy gateway already has the service enumeration information available locally, then that information is returned directly instead of forwarding the call. Doing so can significantly cut down on the volume of recurring service enumeration calls on a large gateway network.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowJavaSerialization": { "default": false, "type": "boolean", "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "requireSSL": { "default": true, "description": "If true, only connections that use SSL to encrypt traffic will be allowed. This setting only applies to incoming connections.\n", "type": "boolean", "x-ignition-non-secret": false }, "requireTwoWayAuth": { "default": true, "description": "Enforces two-way SSL authentication. If true, you will need to install the remote machine's certificate on this machine, in addition to manual approval of this machine's certificate on the remote machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "receiveQueueMax": { "default": 100, "description": "Number of received messages that can be held until they are processed by the local system. When this capacity is exceeded, new messages are rejected and errors are reported to the remote gateway. Applies to incoming connections.\n", "type": "number", "x-ignition-non-secret": false }, "overloadWaitSecs": { "default": 60, "description": "The number of seconds that a remote machine is instructed to wait before resuming message delivery. This setting is used when an overload is detected on the local machine.\n", "type": "number", "x-ignition-non-secret": false }, "allowIncoming": { "default": true, "description": "If false, only outward connections defined on this gateway will be allowed.\n", "type": "boolean", "x-ignition-non-secret": false }, "securityPolicy": { "default": "ApprovedOnly", "description": "Dictates what connections are allowed. If set to 'Approved', incoming connections must be approved from the Incoming Connections page.\n", "type": "string", "enum": [ "Unrestricted", "ApprovedOnly", "SpecifiedList" ], "x-ignition-non-secret": false }, "whitelist": { "default": "", "description": "If connection policy is set to Specified List, this is the comma-separated list of ${GATEWAY} names which will be allowed to connect.\n", "type": "string", "x-ignition-non-secret": false }, "allowedProxyHops": { "default": 0, "description": "The maximum number of proxy hops which could be used to reach the destination Gateway. Any number less than or equal to zero is equivalent to no proxy hops allowed.\n", "type": "number", "x-ignition-non-secret": false }, "websocketSessionIdleTimeout": { "default": 30000, "description": "The maximum number of milliseconds that a websocket is allowed to remain idle before it is closed. This value should always be set higher than outgoing connection ping rates to avoid premature connection termination.\n", "type": "number", "x-ignition-non-secret": false }, "tempFilesMaxAgeHours": { "default": 24, "description": "The maximum number of hours that a gateway network temporary file will be retained. Files older than this value will be purged. Set to 0 to disable cleaning of temporary files.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingRateMillis": { "default": 5000, "description": "How often, in milliseconds, to send a ping to a remote machine. This will allow an incoming connection's health to be monitored. Set to 0 to disable pings sent from an incoming connection.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingTimeoutMillis": { "default": 300, "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingMaxMissed": { "default": 12, "description": "The amount of missed pings that will force an incoming connection to be considered faulted.\n", "type": "number", "x-ignition-non-secret": false }, "proxyInterceptServiceCalls": { "default": false, "description": "If enabled on a proxy gateway, this setting will intercept recurring service enumeration calls that the proxy gateway normally passes along. If the proxy gateway already has the service enumeration information available locally, then that information is returned directly instead of forwarding the call. Doing so can significantly cut down on the volume of recurring service enumeration calls on a large gateway network.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowJavaSerialization": { "default": false, "type": "boolean", "x-ignition-non-secret": false } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-gateway-network" ], "summary": "Create General Gateway Network Settings", "description": "Create the General Gateway Network Settings resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "requireSSL": { "default": true, "description": "If true, only connections that use SSL to encrypt traffic will be allowed. This setting only applies to incoming connections.\n", "type": "boolean", "x-ignition-non-secret": false }, "requireTwoWayAuth": { "default": true, "description": "Enforces two-way SSL authentication. If true, you will need to install the remote machine's certificate on this machine, in addition to manual approval of this machine's certificate on the remote machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "receiveQueueMax": { "default": 100, "description": "Number of received messages that can be held until they are processed by the local system. When this capacity is exceeded, new messages are rejected and errors are reported to the remote gateway. Applies to incoming connections.\n", "type": "number", "x-ignition-non-secret": false }, "overloadWaitSecs": { "default": 60, "description": "The number of seconds that a remote machine is instructed to wait before resuming message delivery. This setting is used when an overload is detected on the local machine.\n", "type": "number", "x-ignition-non-secret": false }, "allowIncoming": { "default": true, "description": "If false, only outward connections defined on this gateway will be allowed.\n", "type": "boolean", "x-ignition-non-secret": false }, "securityPolicy": { "default": "ApprovedOnly", "description": "Dictates what connections are allowed. If set to 'Approved', incoming connections must be approved from the Incoming Connections page.\n", "type": "string", "enum": [ "Unrestricted", "ApprovedOnly", "SpecifiedList" ], "x-ignition-non-secret": false }, "whitelist": { "default": "", "description": "If connection policy is set to Specified List, this is the comma-separated list of ${GATEWAY} names which will be allowed to connect.\n", "type": "string", "x-ignition-non-secret": false }, "allowedProxyHops": { "default": 0, "description": "The maximum number of proxy hops which could be used to reach the destination Gateway. Any number less than or equal to zero is equivalent to no proxy hops allowed.\n", "type": "number", "x-ignition-non-secret": false }, "websocketSessionIdleTimeout": { "default": 30000, "description": "The maximum number of milliseconds that a websocket is allowed to remain idle before it is closed. This value should always be set higher than outgoing connection ping rates to avoid premature connection termination.\n", "type": "number", "x-ignition-non-secret": false }, "tempFilesMaxAgeHours": { "default": 24, "description": "The maximum number of hours that a gateway network temporary file will be retained. Files older than this value will be purged. Set to 0 to disable cleaning of temporary files.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingRateMillis": { "default": 5000, "description": "How often, in milliseconds, to send a ping to a remote machine. This will allow an incoming connection's health to be monitored. Set to 0 to disable pings sent from an incoming connection.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingTimeoutMillis": { "default": 300, "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingMaxMissed": { "default": 12, "description": "The amount of missed pings that will force an incoming connection to be considered faulted.\n", "type": "number", "x-ignition-non-secret": false }, "proxyInterceptServiceCalls": { "default": false, "description": "If enabled on a proxy gateway, this setting will intercept recurring service enumeration calls that the proxy gateway normally passes along. If the proxy gateway already has the service enumeration information available locally, then that information is returned directly instead of forwarding the call. Doing so can significantly cut down on the volume of recurring service enumeration calls on a large gateway network.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowJavaSerialization": { "default": false, "type": "boolean", "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "requireSSL": { "default": true, "description": "If true, only connections that use SSL to encrypt traffic will be allowed. This setting only applies to incoming connections.\n", "type": "boolean", "x-ignition-non-secret": false }, "requireTwoWayAuth": { "default": true, "description": "Enforces two-way SSL authentication. If true, you will need to install the remote machine's certificate on this machine, in addition to manual approval of this machine's certificate on the remote machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "receiveQueueMax": { "default": 100, "description": "Number of received messages that can be held until they are processed by the local system. When this capacity is exceeded, new messages are rejected and errors are reported to the remote gateway. Applies to incoming connections.\n", "type": "number", "x-ignition-non-secret": false }, "overloadWaitSecs": { "default": 60, "description": "The number of seconds that a remote machine is instructed to wait before resuming message delivery. This setting is used when an overload is detected on the local machine.\n", "type": "number", "x-ignition-non-secret": false }, "allowIncoming": { "default": true, "description": "If false, only outward connections defined on this gateway will be allowed.\n", "type": "boolean", "x-ignition-non-secret": false }, "securityPolicy": { "default": "ApprovedOnly", "description": "Dictates what connections are allowed. If set to 'Approved', incoming connections must be approved from the Incoming Connections page.\n", "type": "string", "enum": [ "Unrestricted", "ApprovedOnly", "SpecifiedList" ], "x-ignition-non-secret": false }, "whitelist": { "default": "", "description": "If connection policy is set to Specified List, this is the comma-separated list of ${GATEWAY} names which will be allowed to connect.\n", "type": "string", "x-ignition-non-secret": false }, "allowedProxyHops": { "default": 0, "description": "The maximum number of proxy hops which could be used to reach the destination Gateway. Any number less than or equal to zero is equivalent to no proxy hops allowed.\n", "type": "number", "x-ignition-non-secret": false }, "websocketSessionIdleTimeout": { "default": 30000, "description": "The maximum number of milliseconds that a websocket is allowed to remain idle before it is closed. This value should always be set higher than outgoing connection ping rates to avoid premature connection termination.\n", "type": "number", "x-ignition-non-secret": false }, "tempFilesMaxAgeHours": { "default": 24, "description": "The maximum number of hours that a gateway network temporary file will be retained. Files older than this value will be purged. Set to 0 to disable cleaning of temporary files.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingRateMillis": { "default": 5000, "description": "How often, in milliseconds, to send a ping to a remote machine. This will allow an incoming connection's health to be monitored. Set to 0 to disable pings sent from an incoming connection.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingTimeoutMillis": { "default": 300, "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingMaxMissed": { "default": 12, "description": "The amount of missed pings that will force an incoming connection to be considered faulted.\n", "type": "number", "x-ignition-non-secret": false }, "proxyInterceptServiceCalls": { "default": false, "description": "If enabled on a proxy gateway, this setting will intercept recurring service enumeration calls that the proxy gateway normally passes along. If the proxy gateway already has the service enumeration information available locally, then that information is returned directly instead of forwarding the call. Doing so can significantly cut down on the volume of recurring service enumeration calls on a large gateway network.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowJavaSerialization": { "default": false, "type": "boolean", "x-ignition-non-secret": false } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/gateway-network-settings/{signature}": { "delete": { "tags": [ "config-gateway-network" ], "summary": "Delete General Gateway Network Settings", "description": "Delete the General Gateway Network Settings resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/general-alarm-settings": { "put": { "tags": [ "general-alarm-settings" ], "summary": "Modify General Alarm Settings", "description": "Modify one or more General Alarm Settings resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "startupSuppressionTime": { "description": "How long to store events for on shutdown, to prevent new events on startup. Prevents unacknowledged active events from being generated due to reboot. If set to 0, will not be used. Default 10.", "type": "number", "x-ignition-non-secret": false }, "liveEventLimit": { "description": "The number of \"live\" events (active or unacknowledged) that can exist for a single alarm at a given time. When surpassed, older events will be acknowledged automatically by the system. Default 5.", "type": "number", "x-ignition-non-secret": false }, "notifyInitialEvents": { "description": "If false, active alarms caused by the \"initial state\" (that is, the first value checked after being created, or after the enabled state changes) won't be sent to the notification system. Default false.", "type": "boolean", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "startupSuppressionTime": { "description": "How long to store events for on shutdown, to prevent new events on startup. Prevents unacknowledged active events from being generated due to reboot. If set to 0, will not be used. Default 10.", "type": "number", "x-ignition-non-secret": false }, "liveEventLimit": { "description": "The number of \"live\" events (active or unacknowledged) that can exist for a single alarm at a given time. When surpassed, older events will be acknowledged automatically by the system. Default 5.", "type": "number", "x-ignition-non-secret": false }, "notifyInitialEvents": { "description": "If false, active alarms caused by the \"initial state\" (that is, the first value checked after being created, or after the enabled state changes) won't be sent to the notification system. Default false.", "type": "boolean", "x-ignition-non-secret": false } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "general-alarm-settings" ], "summary": "Create General Alarm Settings", "description": "Create the General Alarm Settings resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "startupSuppressionTime": { "description": "How long to store events for on shutdown, to prevent new events on startup. Prevents unacknowledged active events from being generated due to reboot. If set to 0, will not be used. Default 10.", "type": "number", "x-ignition-non-secret": false }, "liveEventLimit": { "description": "The number of \"live\" events (active or unacknowledged) that can exist for a single alarm at a given time. When surpassed, older events will be acknowledged automatically by the system. Default 5.", "type": "number", "x-ignition-non-secret": false }, "notifyInitialEvents": { "description": "If false, active alarms caused by the \"initial state\" (that is, the first value checked after being created, or after the enabled state changes) won't be sent to the notification system. Default false.", "type": "boolean", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "startupSuppressionTime": { "description": "How long to store events for on shutdown, to prevent new events on startup. Prevents unacknowledged active events from being generated due to reboot. If set to 0, will not be used. Default 10.", "type": "number", "x-ignition-non-secret": false }, "liveEventLimit": { "description": "The number of \"live\" events (active or unacknowledged) that can exist for a single alarm at a given time. When surpassed, older events will be acknowledged automatically by the system. Default 5.", "type": "number", "x-ignition-non-secret": false }, "notifyInitialEvents": { "description": "If false, active alarms caused by the \"initial state\" (that is, the first value checked after being created, or after the enabled state changes) won't be sent to the notification system. Default false.", "type": "boolean", "x-ignition-non-secret": false } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/general-alarm-settings/{signature}": { "delete": { "tags": [ "general-alarm-settings" ], "summary": "Delete General Alarm Settings", "description": "Delete the General Alarm Settings resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/holiday": { "put": { "tags": [ "config-alarm" ], "summary": "Modify Holiday", "description": "Modify one or more Holiday resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "date": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "repeatAnnually": { "type": "boolean", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "date": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "repeatAnnually": { "type": "boolean", "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-alarm" ], "summary": "Create Holiday", "description": "Create a new Holiday resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "date": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "repeatAnnually": { "type": "boolean", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "date": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "repeatAnnually": { "type": "boolean", "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/holiday/{name}/{signature}": { "delete": { "tags": [ "config-alarm" ], "summary": "Delete Holiday", "description": "Delete a Holiday resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/identity-provider": { "put": { "tags": [ "config-identity-provider" ], "summary": "Modify Identity Provider", "description": "Modify one or more Identity Provider resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal", "oidc", "saml" ] }, "userAttributeMapper": { "type": "object", "properties": { "id": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "ID Attribute Mapper", "description": "Configuration settings for the user ID attribute mapper" }, "userName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Username Attribute Mapper", "description": "Configuration settings for the username attribute mapper" }, "firstName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "First Name Attribute Mapper", "description": "Configuration settings for the first name attribute mapper" }, "lastName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Last Name Attribute Mapper", "description": "Configuration settings for the last name attribute mapper" }, "email": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Email Attribute Mapper", "description": "Configuration settings for the email attribute mapper" }, "roles": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Roles Attribute Mapper", "description": "Configuration settings for the roles attribute mapper" } }, "required": [ "id", "userName" ], "title": "User Attribute Mapper", "description": "Configuration settings for the user attribute mapper" }, "userGrants": { "type": "object", "properties": { "id": { "type": "object", "title": "Grants by ID", "description": "Security levels granted to users matching a specific user ID. The object keys are the user IDs to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "username": { "type": "object", "title": "Grants by Username", "description": "Security levels granted to users matching a specific username. The object keys are the usernames to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } } }, "title": "User Grants", "description": "Configuration settings for the user grants" }, "securityLevelRules": { "type": "object", "properties": { "nodes": { "type": "array", "title": "Nodes", "description": "Configuration settings for each security level rule node", "items": { "$ref": "#/components/schemas/SecurityLevelRuleNode" } } }, "required": [ "nodes" ], "title": "Security Level Rules", "description": "Configuration settings for the security level rules" } }, "required": [ "type", "userAttributeMapper", "userGrants", "securityLevelRules" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/identity-provider/internal", "title": "internal", "type": "object", "properties": { "userSource": { "type": "string", "title": "User Source Profile Name", "description": "The name of the User Source Profile used to authenticate users" }, "authMethods": { "type": "array", "title": "Authentication Methods", "description": "An array of authentication methods in preference order. There must be at least one authentication method in the array. If there are more than one authentication methods in the array, there must not be any duplicate authentication method types (such as two basic or two badge authentication methods).", "items": { "oneOf": [ { "type": "object", "title": "basic", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "basic" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "badge", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "badge" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method.", "properties": { "secretRequired": { "type": "boolean", "title": "Require Secret", "description": "If set to true, the user will be required to provide a secret in addition to their badge scan. If false, the user will only need to scan their badge to successfully authenticate.", "x-ignition-non-secret": true } }, "required": [ "secretRequired" ] } }, "required": [ "type", "config" ] } ] } }, "sessionInactivityTimeout": { "type": "number", "title": "Session Inactivity Timeout", "description": "The number of minutes which must elapse before expiring a session due to user inactivity. Sessions will not timeout if set to any number less than or equal to zero." }, "sessionExp": { "type": "number", "title": "Session Expiration", "description": "The maximum number of minutes a session may exist before it is expired. Sessions will not have a max lifetime if set to any number less than or equal to zero." }, "rememberMeExp": { "type": "number", "title": "Remember Me Expiration", "description": "The maximum number of hours a user will be remembered if they elect to be remembered. Remember Me is disabled when this value is set to any number less than or equal to zero." } }, "required": [ "userSource", "authMethods", "sessionInactivityTimeout", "sessionExp", "rememberMeExp" ] }, { "$id": "ignition/identity-provider/oidc", "title": "oidc", "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the identity provider." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the identity provider.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationEndpoint": { "type": "string", "title": "Authorization URL", "description": "URL of the OP's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the OP on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenEndpoint": { "type": "string", "title": "Token URL", "description": "URL of the OP's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "endSessionEndpoint": { "type": "string", "title": "Logout URL", "description": "URL at the OP to which an RP can perform a redirect to request that the End-User be logged out at the OP." }, "jsonWebKeysEndpoint": { "type": "string", "title": "JSON Web Keys URL", "description": "URL of the OP's JSON Web Key Set document.", "x-ignition-non-secret": true }, "jsonWebKeysEndpointEnabled": { "type": "boolean", "title": "Enable JSON Web Keys URL", "description": "If true, then identity provider public keys will be automatically downloaded from the Json Web Keys URL if it is set. New keys will be automatically fetched when the identity provider generates new keys. If false, then the Provider Keys setting is used, so when the identity provider rotates keys, they must be manually added to this configuration.", "x-ignition-non-secret": true }, "userInfoEndpoint": { "type": "string", "title": "User Info URL", "description": "URL to retrieve UserInfo claims from the provider." }, "userInfoRequestMethod": { "type": "string", "title": "User Info Request Method", "description": "The HTTP method used for sending User Info API requests to the User Info URL.", "enum": [ "GET", "POST" ] }, "providerId": { "type": "string", "title": "Provider ID", "description": "The value that the OP sets as the \"iss\" (issuer) claim for claim sets that originate from the OP. It is also the value that Ignition sets as the \"aud\" (audience) claim for claim sets that originate from this Ignition client intended for the OP's consumption." }, "providerKeys": { "type": "array", "title": "Provider Keys", "description": "A list of trusted JSON Web Keys provided by the OP. Ignition uses these keys to validate data signed by the OP and to encrypt data to the OP.", "x-ignition-non-secret": true, "items": { "oneOf": [ { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "EC" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "The \"crv\" (curve) parameter identifies the cryptographic curve used with the key.", "enum": [ "P-256", "P-384", "P-521", "secp256k1" ] }, "x": { "type": "string", "title": "X Coordinate", "description": "The \"x\" (x coordinate) parameter contains the x coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." }, "y": { "type": "string", "title": "Y Coordinate", "description": "The \"y\" (y coordinate) parameter contains the y coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." } }, "required": [ "kty", "crv", "x" ], "title": "Public Elliptic Curve Key", "description": "JSON Web Key encoding of a Public Elliptic Curve key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "RSA" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "n": { "type": "string", "title": "Modulus", "description": "The \"n\" (modulus) parameter contains the modulus value for the RSA public key. It is represented as a Base64urlUInt-encoded value." }, "e": { "type": "string", "title": "Exponent", "description": "The \"e\" (exponent) parameter contains the exponent value for the RSA public key. It is represented as a Base64urlUInt-encoded value." } }, "required": [ "kty", "n", "e" ], "title": "Public RSA Key", "description": "JSON Web Key encoding of a Public RSA key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "OKP" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "Key subtype.", "enum": [ "Ed25519", "Ed448", "X25519", "X448" ] }, "x": { "type": "string", "title": "Public Key", "description": "The public key encoded using the base64url [RFC4648] encoding." } }, "required": [ "kty", "crv", "x" ], "title": "Public Octet Key Pair", "description": "Public JSON Web Key encoding for public key algorithms that use octet strings as private and public keys." } ] } }, "allowedIdTokenSigningAlgorithms": { "type": "array", "title": "Allowed ID Token Signing Algorithms", "description": "The list of JWS algorithms that Ignition will allow the OP to use for signing ID tokens. Warning: allowing a value of \"none\" could allow a malicious user to forge ID tokens, and Ignition will be unable to distinguish between an authentic ID token issued by the OP and a forged ID token issued by the malicious user. Therefore, it is recommended never to allow \"none\".", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES256K", "EdDSA", "PS256", "PS384", "PS512" ] } }, "scope": { "type": "array", "title": "Scope", "description": "A list of default scopes which will be sent for each authorization request to the OP.", "items": { "type": "string" } } }, "required": [ "clientId", "clientSecret", "authorizationEndpoint", "tokenEndpoint", "jsonWebKeysEndpointEnabled", "userInfoRequestMethod", "providerId", "providerKeys", "allowedIdTokenSigningAlgorithms", "scope" ] }, { "$id": "ignition/identity-provider/saml", "title": "saml", "type": "object", "properties": { "idpEntityId": { "type": "string", "title": "IdP Entity ID", "description": "The Identity Provider's Entity ID." }, "spEntityId": { "type": "string", "title": "SP Entity ID", "description": "The Service Provider's Entity ID. In this case, the Service Provider is the current Ignition Gateway." }, "spEntityIdEnabled": { "type": "boolean", "title": "Enable SP Entity ID", "description": "True if the SP Entity ID setting should be used. False to automatically generate the SP Entity ID based on the hostname that the client uses to connect to this Gateway." }, "acsBinding": { "type": "string", "title": "ACS Binding", "description": "The expected binding used by the Identity Provider when interacting with Ignition's Assertion Consumer Service.", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] }, "nameIdFormat": { "type": "string", "title": "Name ID Format", "description": "The expected name ID format for subjects of assertions resulting from Authn Requests.", "enum": [ "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName", "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName", "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos", "urn:oasis:names:tc:SAML:2.0:nameid-format:entity", "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "urn:oasis:names:tc:SAML:2.0:nameid-format:transient" ] }, "ssoServiceConfig": { "type": "object", "properties": { "uri": { "type": "string", "title": "Service URL", "description": "The URL to the service", "examples": [ "https://test.local:8043/saml/sso" ] }, "binding": { "type": "string", "title": "Service Binding", "description": "The Binding for the service", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] } }, "required": [ "uri", "binding" ], "title": "SSO Service Config", "description": "The Identity Provider's Single Sign-On (SSO) Service Configuration." }, "forceAuthnEnabled": { "type": "boolean", "title": "Force Authn", "description": "Setting this value to true will force complying Identity Providers to authenticate the user each time instead of relying on a previous security context. See section 3.4.1 of saml-core-2.0-os for more details." }, "responseSignaturesRequired": { "type": "boolean", "title": "Require Response Signatures", "description": "If true, the Gateway will require each Identity Provider Response to have a valid signature. Warning: if both this value and the 'Require Assertion Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "assertionSignaturesRequired": { "type": "boolean", "title": "Require Assertion Signatures", "description": "If true, the Gateway will require each Identity Provider Assertion to have a valid signature. Warning: if both this value and the 'Require Response Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "idpMetadataUrl": { "type": "string", "title": "IdP Metadata URL", "description": "URL to the SAML Identity Provider Metadata document.", "examples": [ "https://test.local:8043/saml/metadata" ] }, "idpMetadataUrlEnabled": { "type": "boolean", "title": "Enable IdP Metadata URL", "description": "If true, and if the IdP Metadata URL is specified, the Identity Provider's signature verifying keys and certificates will be automatically downloaded from IdP metadata URL. New keys and certificates will be automatically fetched when the Identity Provider generates them. If unchecked, then the static set of keys and certificates embedded in this configuration are used, so when the identity provider rotates them, they must be manually added to this configuration." }, "signatureVerifyingCertificates": { "type": "array", "title": "Signature Verifying Certificates", "description": "An array of signing certificates that Ignition uses to validate signatures from the IdP. Each array entry is a base64-encoded DER-encoding of an X.509 key.", "items": { "type": "string", "contentEncoding": "base64", "title": "Certificate", "description": "A base64-encoded DER-encoding of an X.509 certificate." } }, "signatureVerifyingKeys": { "type": "array", "title": "Signature Verifying Keys", "description": "An array of signing keys that Ignition uses to validate signatures from the IdP.", "x-ignition-non-secret": true, "items": { "type": "object", "properties": { "alg": { "type": "string", "title": "Algorithm", "description": "The algorithm identifier for this signature verifying key." }, "key": { "type": "string", "contentEncoding": "base64", "title": "Key", "description": "A base64-encoded DER-encoding of an X.509 key.", "x-ignition-non-secret": true } }, "required": [ "alg", "key" ] } } }, "required": [ "idpEntityId", "spEntityIdEnabled", "acsBinding", "nameIdFormat", "ssoServiceConfig", "forceAuthnEnabled", "responseSignaturesRequired", "assertionSignaturesRequired", "idpMetadataUrlEnabled", "signatureVerifyingCertificates", "signatureVerifyingKeys" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal", "oidc", "saml" ] }, "userAttributeMapper": { "type": "object", "properties": { "id": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "ID Attribute Mapper", "description": "Configuration settings for the user ID attribute mapper" }, "userName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Username Attribute Mapper", "description": "Configuration settings for the username attribute mapper" }, "firstName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "First Name Attribute Mapper", "description": "Configuration settings for the first name attribute mapper" }, "lastName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Last Name Attribute Mapper", "description": "Configuration settings for the last name attribute mapper" }, "email": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Email Attribute Mapper", "description": "Configuration settings for the email attribute mapper" }, "roles": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Roles Attribute Mapper", "description": "Configuration settings for the roles attribute mapper" } }, "required": [ "id", "userName" ], "title": "User Attribute Mapper", "description": "Configuration settings for the user attribute mapper" }, "userGrants": { "type": "object", "properties": { "id": { "type": "object", "title": "Grants by ID", "description": "Security levels granted to users matching a specific user ID. The object keys are the user IDs to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "username": { "type": "object", "title": "Grants by Username", "description": "Security levels granted to users matching a specific username. The object keys are the usernames to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } } }, "title": "User Grants", "description": "Configuration settings for the user grants" }, "securityLevelRules": { "type": "object", "properties": { "nodes": { "type": "array", "title": "Nodes", "description": "Configuration settings for each security level rule node", "items": { "$ref": "#/components/schemas/SecurityLevelRuleNode" } } }, "required": [ "nodes" ], "title": "Security Level Rules", "description": "Configuration settings for the security level rules" } }, "required": [ "type", "userAttributeMapper", "userGrants", "securityLevelRules" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/identity-provider/internal", "title": "internal", "type": "object", "properties": { "userSource": { "type": "string", "title": "User Source Profile Name", "description": "The name of the User Source Profile used to authenticate users" }, "authMethods": { "type": "array", "title": "Authentication Methods", "description": "An array of authentication methods in preference order. There must be at least one authentication method in the array. If there are more than one authentication methods in the array, there must not be any duplicate authentication method types (such as two basic or two badge authentication methods).", "items": { "oneOf": [ { "type": "object", "title": "basic", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "basic" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "badge", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "badge" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method.", "properties": { "secretRequired": { "type": "boolean", "title": "Require Secret", "description": "If set to true, the user will be required to provide a secret in addition to their badge scan. If false, the user will only need to scan their badge to successfully authenticate.", "x-ignition-non-secret": true } }, "required": [ "secretRequired" ] } }, "required": [ "type", "config" ] } ] } }, "sessionInactivityTimeout": { "type": "number", "title": "Session Inactivity Timeout", "description": "The number of minutes which must elapse before expiring a session due to user inactivity. Sessions will not timeout if set to any number less than or equal to zero." }, "sessionExp": { "type": "number", "title": "Session Expiration", "description": "The maximum number of minutes a session may exist before it is expired. Sessions will not have a max lifetime if set to any number less than or equal to zero." }, "rememberMeExp": { "type": "number", "title": "Remember Me Expiration", "description": "The maximum number of hours a user will be remembered if they elect to be remembered. Remember Me is disabled when this value is set to any number less than or equal to zero." } }, "required": [ "userSource", "authMethods", "sessionInactivityTimeout", "sessionExp", "rememberMeExp" ] }, { "$id": "ignition/identity-provider/oidc", "title": "oidc", "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the identity provider." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the identity provider.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationEndpoint": { "type": "string", "title": "Authorization URL", "description": "URL of the OP's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the OP on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenEndpoint": { "type": "string", "title": "Token URL", "description": "URL of the OP's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "endSessionEndpoint": { "type": "string", "title": "Logout URL", "description": "URL at the OP to which an RP can perform a redirect to request that the End-User be logged out at the OP." }, "jsonWebKeysEndpoint": { "type": "string", "title": "JSON Web Keys URL", "description": "URL of the OP's JSON Web Key Set document.", "x-ignition-non-secret": true }, "jsonWebKeysEndpointEnabled": { "type": "boolean", "title": "Enable JSON Web Keys URL", "description": "If true, then identity provider public keys will be automatically downloaded from the Json Web Keys URL if it is set. New keys will be automatically fetched when the identity provider generates new keys. If false, then the Provider Keys setting is used, so when the identity provider rotates keys, they must be manually added to this configuration.", "x-ignition-non-secret": true }, "userInfoEndpoint": { "type": "string", "title": "User Info URL", "description": "URL to retrieve UserInfo claims from the provider." }, "userInfoRequestMethod": { "type": "string", "title": "User Info Request Method", "description": "The HTTP method used for sending User Info API requests to the User Info URL.", "enum": [ "GET", "POST" ] }, "providerId": { "type": "string", "title": "Provider ID", "description": "The value that the OP sets as the \"iss\" (issuer) claim for claim sets that originate from the OP. It is also the value that Ignition sets as the \"aud\" (audience) claim for claim sets that originate from this Ignition client intended for the OP's consumption." }, "providerKeys": { "type": "array", "title": "Provider Keys", "description": "A list of trusted JSON Web Keys provided by the OP. Ignition uses these keys to validate data signed by the OP and to encrypt data to the OP.", "x-ignition-non-secret": true, "items": { "oneOf": [ { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "EC" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "The \"crv\" (curve) parameter identifies the cryptographic curve used with the key.", "enum": [ "P-256", "P-384", "P-521", "secp256k1" ] }, "x": { "type": "string", "title": "X Coordinate", "description": "The \"x\" (x coordinate) parameter contains the x coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." }, "y": { "type": "string", "title": "Y Coordinate", "description": "The \"y\" (y coordinate) parameter contains the y coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." } }, "required": [ "kty", "crv", "x" ], "title": "Public Elliptic Curve Key", "description": "JSON Web Key encoding of a Public Elliptic Curve key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "RSA" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "n": { "type": "string", "title": "Modulus", "description": "The \"n\" (modulus) parameter contains the modulus value for the RSA public key. It is represented as a Base64urlUInt-encoded value." }, "e": { "type": "string", "title": "Exponent", "description": "The \"e\" (exponent) parameter contains the exponent value for the RSA public key. It is represented as a Base64urlUInt-encoded value." } }, "required": [ "kty", "n", "e" ], "title": "Public RSA Key", "description": "JSON Web Key encoding of a Public RSA key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "OKP" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "Key subtype.", "enum": [ "Ed25519", "Ed448", "X25519", "X448" ] }, "x": { "type": "string", "title": "Public Key", "description": "The public key encoded using the base64url [RFC4648] encoding." } }, "required": [ "kty", "crv", "x" ], "title": "Public Octet Key Pair", "description": "Public JSON Web Key encoding for public key algorithms that use octet strings as private and public keys." } ] } }, "allowedIdTokenSigningAlgorithms": { "type": "array", "title": "Allowed ID Token Signing Algorithms", "description": "The list of JWS algorithms that Ignition will allow the OP to use for signing ID tokens. Warning: allowing a value of \"none\" could allow a malicious user to forge ID tokens, and Ignition will be unable to distinguish between an authentic ID token issued by the OP and a forged ID token issued by the malicious user. Therefore, it is recommended never to allow \"none\".", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES256K", "EdDSA", "PS256", "PS384", "PS512" ] } }, "scope": { "type": "array", "title": "Scope", "description": "A list of default scopes which will be sent for each authorization request to the OP.", "items": { "type": "string" } } }, "required": [ "clientId", "clientSecret", "authorizationEndpoint", "tokenEndpoint", "jsonWebKeysEndpointEnabled", "userInfoRequestMethod", "providerId", "providerKeys", "allowedIdTokenSigningAlgorithms", "scope" ] }, { "$id": "ignition/identity-provider/saml", "title": "saml", "type": "object", "properties": { "idpEntityId": { "type": "string", "title": "IdP Entity ID", "description": "The Identity Provider's Entity ID." }, "spEntityId": { "type": "string", "title": "SP Entity ID", "description": "The Service Provider's Entity ID. In this case, the Service Provider is the current Ignition Gateway." }, "spEntityIdEnabled": { "type": "boolean", "title": "Enable SP Entity ID", "description": "True if the SP Entity ID setting should be used. False to automatically generate the SP Entity ID based on the hostname that the client uses to connect to this Gateway." }, "acsBinding": { "type": "string", "title": "ACS Binding", "description": "The expected binding used by the Identity Provider when interacting with Ignition's Assertion Consumer Service.", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] }, "nameIdFormat": { "type": "string", "title": "Name ID Format", "description": "The expected name ID format for subjects of assertions resulting from Authn Requests.", "enum": [ "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName", "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName", "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos", "urn:oasis:names:tc:SAML:2.0:nameid-format:entity", "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "urn:oasis:names:tc:SAML:2.0:nameid-format:transient" ] }, "ssoServiceConfig": { "type": "object", "properties": { "uri": { "type": "string", "title": "Service URL", "description": "The URL to the service", "examples": [ "https://test.local:8043/saml/sso" ] }, "binding": { "type": "string", "title": "Service Binding", "description": "The Binding for the service", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] } }, "required": [ "uri", "binding" ], "title": "SSO Service Config", "description": "The Identity Provider's Single Sign-On (SSO) Service Configuration." }, "forceAuthnEnabled": { "type": "boolean", "title": "Force Authn", "description": "Setting this value to true will force complying Identity Providers to authenticate the user each time instead of relying on a previous security context. See section 3.4.1 of saml-core-2.0-os for more details." }, "responseSignaturesRequired": { "type": "boolean", "title": "Require Response Signatures", "description": "If true, the Gateway will require each Identity Provider Response to have a valid signature. Warning: if both this value and the 'Require Assertion Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "assertionSignaturesRequired": { "type": "boolean", "title": "Require Assertion Signatures", "description": "If true, the Gateway will require each Identity Provider Assertion to have a valid signature. Warning: if both this value and the 'Require Response Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "idpMetadataUrl": { "type": "string", "title": "IdP Metadata URL", "description": "URL to the SAML Identity Provider Metadata document.", "examples": [ "https://test.local:8043/saml/metadata" ] }, "idpMetadataUrlEnabled": { "type": "boolean", "title": "Enable IdP Metadata URL", "description": "If true, and if the IdP Metadata URL is specified, the Identity Provider's signature verifying keys and certificates will be automatically downloaded from IdP metadata URL. New keys and certificates will be automatically fetched when the Identity Provider generates them. If unchecked, then the static set of keys and certificates embedded in this configuration are used, so when the identity provider rotates them, they must be manually added to this configuration." }, "signatureVerifyingCertificates": { "type": "array", "title": "Signature Verifying Certificates", "description": "An array of signing certificates that Ignition uses to validate signatures from the IdP. Each array entry is a base64-encoded DER-encoding of an X.509 key.", "items": { "type": "string", "contentEncoding": "base64", "title": "Certificate", "description": "A base64-encoded DER-encoding of an X.509 certificate." } }, "signatureVerifyingKeys": { "type": "array", "title": "Signature Verifying Keys", "description": "An array of signing keys that Ignition uses to validate signatures from the IdP.", "x-ignition-non-secret": true, "items": { "type": "object", "properties": { "alg": { "type": "string", "title": "Algorithm", "description": "The algorithm identifier for this signature verifying key." }, "key": { "type": "string", "contentEncoding": "base64", "title": "Key", "description": "A base64-encoded DER-encoding of an X.509 key.", "x-ignition-non-secret": true } }, "required": [ "alg", "key" ] } } }, "required": [ "idpEntityId", "spEntityIdEnabled", "acsBinding", "nameIdFormat", "ssoServiceConfig", "forceAuthnEnabled", "responseSignaturesRequired", "assertionSignaturesRequired", "idpMetadataUrlEnabled", "signatureVerifyingCertificates", "signatureVerifyingKeys" ] } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-identity-provider" ], "summary": "Create Identity Provider", "description": "Create a new Identity Provider resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal", "oidc", "saml" ] }, "userAttributeMapper": { "type": "object", "properties": { "id": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "ID Attribute Mapper", "description": "Configuration settings for the user ID attribute mapper" }, "userName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Username Attribute Mapper", "description": "Configuration settings for the username attribute mapper" }, "firstName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "First Name Attribute Mapper", "description": "Configuration settings for the first name attribute mapper" }, "lastName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Last Name Attribute Mapper", "description": "Configuration settings for the last name attribute mapper" }, "email": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Email Attribute Mapper", "description": "Configuration settings for the email attribute mapper" }, "roles": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Roles Attribute Mapper", "description": "Configuration settings for the roles attribute mapper" } }, "required": [ "id", "userName" ], "title": "User Attribute Mapper", "description": "Configuration settings for the user attribute mapper" }, "userGrants": { "type": "object", "properties": { "id": { "type": "object", "title": "Grants by ID", "description": "Security levels granted to users matching a specific user ID. The object keys are the user IDs to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "username": { "type": "object", "title": "Grants by Username", "description": "Security levels granted to users matching a specific username. The object keys are the usernames to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } } }, "title": "User Grants", "description": "Configuration settings for the user grants" }, "securityLevelRules": { "type": "object", "properties": { "nodes": { "type": "array", "title": "Nodes", "description": "Configuration settings for each security level rule node", "items": { "$ref": "#/components/schemas/SecurityLevelRuleNode" } } }, "required": [ "nodes" ], "title": "Security Level Rules", "description": "Configuration settings for the security level rules" } }, "required": [ "type", "userAttributeMapper", "userGrants", "securityLevelRules" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/identity-provider/internal", "title": "internal", "type": "object", "properties": { "userSource": { "type": "string", "title": "User Source Profile Name", "description": "The name of the User Source Profile used to authenticate users" }, "authMethods": { "type": "array", "title": "Authentication Methods", "description": "An array of authentication methods in preference order. There must be at least one authentication method in the array. If there are more than one authentication methods in the array, there must not be any duplicate authentication method types (such as two basic or two badge authentication methods).", "items": { "oneOf": [ { "type": "object", "title": "basic", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "basic" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "badge", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "badge" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method.", "properties": { "secretRequired": { "type": "boolean", "title": "Require Secret", "description": "If set to true, the user will be required to provide a secret in addition to their badge scan. If false, the user will only need to scan their badge to successfully authenticate.", "x-ignition-non-secret": true } }, "required": [ "secretRequired" ] } }, "required": [ "type", "config" ] } ] } }, "sessionInactivityTimeout": { "type": "number", "title": "Session Inactivity Timeout", "description": "The number of minutes which must elapse before expiring a session due to user inactivity. Sessions will not timeout if set to any number less than or equal to zero." }, "sessionExp": { "type": "number", "title": "Session Expiration", "description": "The maximum number of minutes a session may exist before it is expired. Sessions will not have a max lifetime if set to any number less than or equal to zero." }, "rememberMeExp": { "type": "number", "title": "Remember Me Expiration", "description": "The maximum number of hours a user will be remembered if they elect to be remembered. Remember Me is disabled when this value is set to any number less than or equal to zero." } }, "required": [ "userSource", "authMethods", "sessionInactivityTimeout", "sessionExp", "rememberMeExp" ] }, { "$id": "ignition/identity-provider/oidc", "title": "oidc", "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the identity provider." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the identity provider.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationEndpoint": { "type": "string", "title": "Authorization URL", "description": "URL of the OP's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the OP on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenEndpoint": { "type": "string", "title": "Token URL", "description": "URL of the OP's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "endSessionEndpoint": { "type": "string", "title": "Logout URL", "description": "URL at the OP to which an RP can perform a redirect to request that the End-User be logged out at the OP." }, "jsonWebKeysEndpoint": { "type": "string", "title": "JSON Web Keys URL", "description": "URL of the OP's JSON Web Key Set document.", "x-ignition-non-secret": true }, "jsonWebKeysEndpointEnabled": { "type": "boolean", "title": "Enable JSON Web Keys URL", "description": "If true, then identity provider public keys will be automatically downloaded from the Json Web Keys URL if it is set. New keys will be automatically fetched when the identity provider generates new keys. If false, then the Provider Keys setting is used, so when the identity provider rotates keys, they must be manually added to this configuration.", "x-ignition-non-secret": true }, "userInfoEndpoint": { "type": "string", "title": "User Info URL", "description": "URL to retrieve UserInfo claims from the provider." }, "userInfoRequestMethod": { "type": "string", "title": "User Info Request Method", "description": "The HTTP method used for sending User Info API requests to the User Info URL.", "enum": [ "GET", "POST" ] }, "providerId": { "type": "string", "title": "Provider ID", "description": "The value that the OP sets as the \"iss\" (issuer) claim for claim sets that originate from the OP. It is also the value that Ignition sets as the \"aud\" (audience) claim for claim sets that originate from this Ignition client intended for the OP's consumption." }, "providerKeys": { "type": "array", "title": "Provider Keys", "description": "A list of trusted JSON Web Keys provided by the OP. Ignition uses these keys to validate data signed by the OP and to encrypt data to the OP.", "x-ignition-non-secret": true, "items": { "oneOf": [ { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "EC" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "The \"crv\" (curve) parameter identifies the cryptographic curve used with the key.", "enum": [ "P-256", "P-384", "P-521", "secp256k1" ] }, "x": { "type": "string", "title": "X Coordinate", "description": "The \"x\" (x coordinate) parameter contains the x coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." }, "y": { "type": "string", "title": "Y Coordinate", "description": "The \"y\" (y coordinate) parameter contains the y coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." } }, "required": [ "kty", "crv", "x" ], "title": "Public Elliptic Curve Key", "description": "JSON Web Key encoding of a Public Elliptic Curve key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "RSA" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "n": { "type": "string", "title": "Modulus", "description": "The \"n\" (modulus) parameter contains the modulus value for the RSA public key. It is represented as a Base64urlUInt-encoded value." }, "e": { "type": "string", "title": "Exponent", "description": "The \"e\" (exponent) parameter contains the exponent value for the RSA public key. It is represented as a Base64urlUInt-encoded value." } }, "required": [ "kty", "n", "e" ], "title": "Public RSA Key", "description": "JSON Web Key encoding of a Public RSA key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "OKP" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "Key subtype.", "enum": [ "Ed25519", "Ed448", "X25519", "X448" ] }, "x": { "type": "string", "title": "Public Key", "description": "The public key encoded using the base64url [RFC4648] encoding." } }, "required": [ "kty", "crv", "x" ], "title": "Public Octet Key Pair", "description": "Public JSON Web Key encoding for public key algorithms that use octet strings as private and public keys." } ] } }, "allowedIdTokenSigningAlgorithms": { "type": "array", "title": "Allowed ID Token Signing Algorithms", "description": "The list of JWS algorithms that Ignition will allow the OP to use for signing ID tokens. Warning: allowing a value of \"none\" could allow a malicious user to forge ID tokens, and Ignition will be unable to distinguish between an authentic ID token issued by the OP and a forged ID token issued by the malicious user. Therefore, it is recommended never to allow \"none\".", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES256K", "EdDSA", "PS256", "PS384", "PS512" ] } }, "scope": { "type": "array", "title": "Scope", "description": "A list of default scopes which will be sent for each authorization request to the OP.", "items": { "type": "string" } } }, "required": [ "clientId", "clientSecret", "authorizationEndpoint", "tokenEndpoint", "jsonWebKeysEndpointEnabled", "userInfoRequestMethod", "providerId", "providerKeys", "allowedIdTokenSigningAlgorithms", "scope" ] }, { "$id": "ignition/identity-provider/saml", "title": "saml", "type": "object", "properties": { "idpEntityId": { "type": "string", "title": "IdP Entity ID", "description": "The Identity Provider's Entity ID." }, "spEntityId": { "type": "string", "title": "SP Entity ID", "description": "The Service Provider's Entity ID. In this case, the Service Provider is the current Ignition Gateway." }, "spEntityIdEnabled": { "type": "boolean", "title": "Enable SP Entity ID", "description": "True if the SP Entity ID setting should be used. False to automatically generate the SP Entity ID based on the hostname that the client uses to connect to this Gateway." }, "acsBinding": { "type": "string", "title": "ACS Binding", "description": "The expected binding used by the Identity Provider when interacting with Ignition's Assertion Consumer Service.", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] }, "nameIdFormat": { "type": "string", "title": "Name ID Format", "description": "The expected name ID format for subjects of assertions resulting from Authn Requests.", "enum": [ "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName", "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName", "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos", "urn:oasis:names:tc:SAML:2.0:nameid-format:entity", "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "urn:oasis:names:tc:SAML:2.0:nameid-format:transient" ] }, "ssoServiceConfig": { "type": "object", "properties": { "uri": { "type": "string", "title": "Service URL", "description": "The URL to the service", "examples": [ "https://test.local:8043/saml/sso" ] }, "binding": { "type": "string", "title": "Service Binding", "description": "The Binding for the service", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] } }, "required": [ "uri", "binding" ], "title": "SSO Service Config", "description": "The Identity Provider's Single Sign-On (SSO) Service Configuration." }, "forceAuthnEnabled": { "type": "boolean", "title": "Force Authn", "description": "Setting this value to true will force complying Identity Providers to authenticate the user each time instead of relying on a previous security context. See section 3.4.1 of saml-core-2.0-os for more details." }, "responseSignaturesRequired": { "type": "boolean", "title": "Require Response Signatures", "description": "If true, the Gateway will require each Identity Provider Response to have a valid signature. Warning: if both this value and the 'Require Assertion Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "assertionSignaturesRequired": { "type": "boolean", "title": "Require Assertion Signatures", "description": "If true, the Gateway will require each Identity Provider Assertion to have a valid signature. Warning: if both this value and the 'Require Response Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "idpMetadataUrl": { "type": "string", "title": "IdP Metadata URL", "description": "URL to the SAML Identity Provider Metadata document.", "examples": [ "https://test.local:8043/saml/metadata" ] }, "idpMetadataUrlEnabled": { "type": "boolean", "title": "Enable IdP Metadata URL", "description": "If true, and if the IdP Metadata URL is specified, the Identity Provider's signature verifying keys and certificates will be automatically downloaded from IdP metadata URL. New keys and certificates will be automatically fetched when the Identity Provider generates them. If unchecked, then the static set of keys and certificates embedded in this configuration are used, so when the identity provider rotates them, they must be manually added to this configuration." }, "signatureVerifyingCertificates": { "type": "array", "title": "Signature Verifying Certificates", "description": "An array of signing certificates that Ignition uses to validate signatures from the IdP. Each array entry is a base64-encoded DER-encoding of an X.509 key.", "items": { "type": "string", "contentEncoding": "base64", "title": "Certificate", "description": "A base64-encoded DER-encoding of an X.509 certificate." } }, "signatureVerifyingKeys": { "type": "array", "title": "Signature Verifying Keys", "description": "An array of signing keys that Ignition uses to validate signatures from the IdP.", "x-ignition-non-secret": true, "items": { "type": "object", "properties": { "alg": { "type": "string", "title": "Algorithm", "description": "The algorithm identifier for this signature verifying key." }, "key": { "type": "string", "contentEncoding": "base64", "title": "Key", "description": "A base64-encoded DER-encoding of an X.509 key.", "x-ignition-non-secret": true } }, "required": [ "alg", "key" ] } } }, "required": [ "idpEntityId", "spEntityIdEnabled", "acsBinding", "nameIdFormat", "ssoServiceConfig", "forceAuthnEnabled", "responseSignaturesRequired", "assertionSignaturesRequired", "idpMetadataUrlEnabled", "signatureVerifyingCertificates", "signatureVerifyingKeys" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal", "oidc", "saml" ] }, "userAttributeMapper": { "type": "object", "properties": { "id": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "ID Attribute Mapper", "description": "Configuration settings for the user ID attribute mapper" }, "userName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Username Attribute Mapper", "description": "Configuration settings for the username attribute mapper" }, "firstName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "First Name Attribute Mapper", "description": "Configuration settings for the first name attribute mapper" }, "lastName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Last Name Attribute Mapper", "description": "Configuration settings for the last name attribute mapper" }, "email": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Email Attribute Mapper", "description": "Configuration settings for the email attribute mapper" }, "roles": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Roles Attribute Mapper", "description": "Configuration settings for the roles attribute mapper" } }, "required": [ "id", "userName" ], "title": "User Attribute Mapper", "description": "Configuration settings for the user attribute mapper" }, "userGrants": { "type": "object", "properties": { "id": { "type": "object", "title": "Grants by ID", "description": "Security levels granted to users matching a specific user ID. The object keys are the user IDs to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "username": { "type": "object", "title": "Grants by Username", "description": "Security levels granted to users matching a specific username. The object keys are the usernames to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } } }, "title": "User Grants", "description": "Configuration settings for the user grants" }, "securityLevelRules": { "type": "object", "properties": { "nodes": { "type": "array", "title": "Nodes", "description": "Configuration settings for each security level rule node", "items": { "$ref": "#/components/schemas/SecurityLevelRuleNode" } } }, "required": [ "nodes" ], "title": "Security Level Rules", "description": "Configuration settings for the security level rules" } }, "required": [ "type", "userAttributeMapper", "userGrants", "securityLevelRules" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/identity-provider/internal", "title": "internal", "type": "object", "properties": { "userSource": { "type": "string", "title": "User Source Profile Name", "description": "The name of the User Source Profile used to authenticate users" }, "authMethods": { "type": "array", "title": "Authentication Methods", "description": "An array of authentication methods in preference order. There must be at least one authentication method in the array. If there are more than one authentication methods in the array, there must not be any duplicate authentication method types (such as two basic or two badge authentication methods).", "items": { "oneOf": [ { "type": "object", "title": "basic", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "basic" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "badge", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "badge" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method.", "properties": { "secretRequired": { "type": "boolean", "title": "Require Secret", "description": "If set to true, the user will be required to provide a secret in addition to their badge scan. If false, the user will only need to scan their badge to successfully authenticate.", "x-ignition-non-secret": true } }, "required": [ "secretRequired" ] } }, "required": [ "type", "config" ] } ] } }, "sessionInactivityTimeout": { "type": "number", "title": "Session Inactivity Timeout", "description": "The number of minutes which must elapse before expiring a session due to user inactivity. Sessions will not timeout if set to any number less than or equal to zero." }, "sessionExp": { "type": "number", "title": "Session Expiration", "description": "The maximum number of minutes a session may exist before it is expired. Sessions will not have a max lifetime if set to any number less than or equal to zero." }, "rememberMeExp": { "type": "number", "title": "Remember Me Expiration", "description": "The maximum number of hours a user will be remembered if they elect to be remembered. Remember Me is disabled when this value is set to any number less than or equal to zero." } }, "required": [ "userSource", "authMethods", "sessionInactivityTimeout", "sessionExp", "rememberMeExp" ] }, { "$id": "ignition/identity-provider/oidc", "title": "oidc", "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the identity provider." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the identity provider.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationEndpoint": { "type": "string", "title": "Authorization URL", "description": "URL of the OP's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the OP on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenEndpoint": { "type": "string", "title": "Token URL", "description": "URL of the OP's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "endSessionEndpoint": { "type": "string", "title": "Logout URL", "description": "URL at the OP to which an RP can perform a redirect to request that the End-User be logged out at the OP." }, "jsonWebKeysEndpoint": { "type": "string", "title": "JSON Web Keys URL", "description": "URL of the OP's JSON Web Key Set document.", "x-ignition-non-secret": true }, "jsonWebKeysEndpointEnabled": { "type": "boolean", "title": "Enable JSON Web Keys URL", "description": "If true, then identity provider public keys will be automatically downloaded from the Json Web Keys URL if it is set. New keys will be automatically fetched when the identity provider generates new keys. If false, then the Provider Keys setting is used, so when the identity provider rotates keys, they must be manually added to this configuration.", "x-ignition-non-secret": true }, "userInfoEndpoint": { "type": "string", "title": "User Info URL", "description": "URL to retrieve UserInfo claims from the provider." }, "userInfoRequestMethod": { "type": "string", "title": "User Info Request Method", "description": "The HTTP method used for sending User Info API requests to the User Info URL.", "enum": [ "GET", "POST" ] }, "providerId": { "type": "string", "title": "Provider ID", "description": "The value that the OP sets as the \"iss\" (issuer) claim for claim sets that originate from the OP. It is also the value that Ignition sets as the \"aud\" (audience) claim for claim sets that originate from this Ignition client intended for the OP's consumption." }, "providerKeys": { "type": "array", "title": "Provider Keys", "description": "A list of trusted JSON Web Keys provided by the OP. Ignition uses these keys to validate data signed by the OP and to encrypt data to the OP.", "x-ignition-non-secret": true, "items": { "oneOf": [ { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "EC" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "The \"crv\" (curve) parameter identifies the cryptographic curve used with the key.", "enum": [ "P-256", "P-384", "P-521", "secp256k1" ] }, "x": { "type": "string", "title": "X Coordinate", "description": "The \"x\" (x coordinate) parameter contains the x coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." }, "y": { "type": "string", "title": "Y Coordinate", "description": "The \"y\" (y coordinate) parameter contains the y coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." } }, "required": [ "kty", "crv", "x" ], "title": "Public Elliptic Curve Key", "description": "JSON Web Key encoding of a Public Elliptic Curve key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "RSA" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "n": { "type": "string", "title": "Modulus", "description": "The \"n\" (modulus) parameter contains the modulus value for the RSA public key. It is represented as a Base64urlUInt-encoded value." }, "e": { "type": "string", "title": "Exponent", "description": "The \"e\" (exponent) parameter contains the exponent value for the RSA public key. It is represented as a Base64urlUInt-encoded value." } }, "required": [ "kty", "n", "e" ], "title": "Public RSA Key", "description": "JSON Web Key encoding of a Public RSA key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "OKP" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "Key subtype.", "enum": [ "Ed25519", "Ed448", "X25519", "X448" ] }, "x": { "type": "string", "title": "Public Key", "description": "The public key encoded using the base64url [RFC4648] encoding." } }, "required": [ "kty", "crv", "x" ], "title": "Public Octet Key Pair", "description": "Public JSON Web Key encoding for public key algorithms that use octet strings as private and public keys." } ] } }, "allowedIdTokenSigningAlgorithms": { "type": "array", "title": "Allowed ID Token Signing Algorithms", "description": "The list of JWS algorithms that Ignition will allow the OP to use for signing ID tokens. Warning: allowing a value of \"none\" could allow a malicious user to forge ID tokens, and Ignition will be unable to distinguish between an authentic ID token issued by the OP and a forged ID token issued by the malicious user. Therefore, it is recommended never to allow \"none\".", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES256K", "EdDSA", "PS256", "PS384", "PS512" ] } }, "scope": { "type": "array", "title": "Scope", "description": "A list of default scopes which will be sent for each authorization request to the OP.", "items": { "type": "string" } } }, "required": [ "clientId", "clientSecret", "authorizationEndpoint", "tokenEndpoint", "jsonWebKeysEndpointEnabled", "userInfoRequestMethod", "providerId", "providerKeys", "allowedIdTokenSigningAlgorithms", "scope" ] }, { "$id": "ignition/identity-provider/saml", "title": "saml", "type": "object", "properties": { "idpEntityId": { "type": "string", "title": "IdP Entity ID", "description": "The Identity Provider's Entity ID." }, "spEntityId": { "type": "string", "title": "SP Entity ID", "description": "The Service Provider's Entity ID. In this case, the Service Provider is the current Ignition Gateway." }, "spEntityIdEnabled": { "type": "boolean", "title": "Enable SP Entity ID", "description": "True if the SP Entity ID setting should be used. False to automatically generate the SP Entity ID based on the hostname that the client uses to connect to this Gateway." }, "acsBinding": { "type": "string", "title": "ACS Binding", "description": "The expected binding used by the Identity Provider when interacting with Ignition's Assertion Consumer Service.", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] }, "nameIdFormat": { "type": "string", "title": "Name ID Format", "description": "The expected name ID format for subjects of assertions resulting from Authn Requests.", "enum": [ "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName", "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName", "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos", "urn:oasis:names:tc:SAML:2.0:nameid-format:entity", "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "urn:oasis:names:tc:SAML:2.0:nameid-format:transient" ] }, "ssoServiceConfig": { "type": "object", "properties": { "uri": { "type": "string", "title": "Service URL", "description": "The URL to the service", "examples": [ "https://test.local:8043/saml/sso" ] }, "binding": { "type": "string", "title": "Service Binding", "description": "The Binding for the service", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] } }, "required": [ "uri", "binding" ], "title": "SSO Service Config", "description": "The Identity Provider's Single Sign-On (SSO) Service Configuration." }, "forceAuthnEnabled": { "type": "boolean", "title": "Force Authn", "description": "Setting this value to true will force complying Identity Providers to authenticate the user each time instead of relying on a previous security context. See section 3.4.1 of saml-core-2.0-os for more details." }, "responseSignaturesRequired": { "type": "boolean", "title": "Require Response Signatures", "description": "If true, the Gateway will require each Identity Provider Response to have a valid signature. Warning: if both this value and the 'Require Assertion Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "assertionSignaturesRequired": { "type": "boolean", "title": "Require Assertion Signatures", "description": "If true, the Gateway will require each Identity Provider Assertion to have a valid signature. Warning: if both this value and the 'Require Response Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "idpMetadataUrl": { "type": "string", "title": "IdP Metadata URL", "description": "URL to the SAML Identity Provider Metadata document.", "examples": [ "https://test.local:8043/saml/metadata" ] }, "idpMetadataUrlEnabled": { "type": "boolean", "title": "Enable IdP Metadata URL", "description": "If true, and if the IdP Metadata URL is specified, the Identity Provider's signature verifying keys and certificates will be automatically downloaded from IdP metadata URL. New keys and certificates will be automatically fetched when the Identity Provider generates them. If unchecked, then the static set of keys and certificates embedded in this configuration are used, so when the identity provider rotates them, they must be manually added to this configuration." }, "signatureVerifyingCertificates": { "type": "array", "title": "Signature Verifying Certificates", "description": "An array of signing certificates that Ignition uses to validate signatures from the IdP. Each array entry is a base64-encoded DER-encoding of an X.509 key.", "items": { "type": "string", "contentEncoding": "base64", "title": "Certificate", "description": "A base64-encoded DER-encoding of an X.509 certificate." } }, "signatureVerifyingKeys": { "type": "array", "title": "Signature Verifying Keys", "description": "An array of signing keys that Ignition uses to validate signatures from the IdP.", "x-ignition-non-secret": true, "items": { "type": "object", "properties": { "alg": { "type": "string", "title": "Algorithm", "description": "The algorithm identifier for this signature verifying key." }, "key": { "type": "string", "contentEncoding": "base64", "title": "Key", "description": "A base64-encoded DER-encoding of an X.509 key.", "x-ignition-non-secret": true } }, "required": [ "alg", "key" ] } } }, "required": [ "idpEntityId", "spEntityIdEnabled", "acsBinding", "nameIdFormat", "ssoServiceConfig", "forceAuthnEnabled", "responseSignaturesRequired", "assertionSignaturesRequired", "idpMetadataUrlEnabled", "signatureVerifyingCertificates", "signatureVerifyingKeys" ] } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/identity-provider/{name}/{signature}": { "delete": { "tags": [ "config-identity-provider" ], "summary": "Delete Identity Provider", "description": "Delete a Identity Provider resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/keyboard_layout": { "put": { "tags": [ "config-keyboard-layouts" ], "summary": "Modify Keyboard Layouts", "description": "Modify one or more Keyboard Layouts resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "$defs": { "key": { "oneOf": [ { "additionalProperties": false, "example": { "lowercase": "a", "uppercase": "A" }, "properties": { "lowercase": { "$ref": "#/$defs/keyVariant" }, "uppercase": { "$ref": "#/$defs/keyVariant" } }, "required": [ "lowercase" ], "type": "object" }, { "description": "Use one of the specific enum values to add a system key before or after the keys on this row.", "enum": [ "BACKSPACE", "SUBMIT", "SHIFT", "CANCEL", "CAPSLOCK", "NUMERIC_LAYOUT" ], "example": "SHIFT", "type": "string" } ] }, "keyVariant": { "oneOf": [ { "type": [ "string", "number" ] }, { "additionalProperties": false, "properties": { "accents": { "description": "Variants of this key to add after long press or the hold key is toggled.", "items": { "type": "string" }, "type": "array" }, "alias": { "description": "An alternate presentation string for this key.", "type": [ "string", "null" ] }, "character": { "description": "The actual character (sequence) to submit when this key is pressed.", "type": [ "string", "number" ] } }, "required": [ "character" ], "type": "object" } ] } }, "additionalProperties": false, "properties": { "alias": { "description": "A short (2-3 character) string to identify this keyboard, to present on the language selector button", "type": "string" }, "id": { "description": "A fixed UUID for the keyboard layout.", "type": "string" }, "labels": { "additionalProperties": false, "default": { "BACKSPACE": "Backsp", "CANCEL": "Cancel", "SHIFT": "Shift", "SPACE": "Space", "SUBMIT": "Enter" }, "description": "Localized strings to change the text on various system keys", "properties": { "ALPHABET_LAYOUT": { "default": "ABC", "description": "A short string to display while in numeric entry mode, indicating the switch back to standard entry mode.", "type": "string" }, "BACKSPACE": { "default": "Backsp", "type": "string" }, "CANCEL": { "default": "Cancel", "type": "string" }, "CAPSLOCK": { "default": "CAPS", "type": "string" }, "NUMERIC_LAYOUT": { "default": "!123", "description": "A short string to display while in normal entry mode, indicating the switch to numeric/symbols entry mode.", "type": "string" }, "SHIFT": { "default": "Shift", "type": "string" }, "SPACE": { "default": "Space", "type": "string" }, "SUBMIT": { "default": "Enter", "type": "string" } }, "type": "object" }, "name": { "description": "The name of this keyboard layout.", "pattern": "^[a-zA-Z][a-zA-Z0-9_]+$", "type": "string" }, "rows": { "items": { "example": [ { "lowercase": "q", "uppercase": "Q" }, { "lowercase": "w", "uppercase": "W" }, { "lowercase": { "accents": [ "\u00e8", "\u00e9", "\u00ea", "\u00eb", "\u0115" ], "character": "e" }, "uppercase": { "accents": [ "\u00c8", "\u00c9", "\u00ca", "\u00cb", "\u0114" ], "character": "E" } }, { "lowercase": "r", "uppercase": "R" }, { "lowercase": "t", "uppercase": "T" }, { "lowercase": "y", "uppercase": "Y" }, { "lowercase": { "accents": [ "\u00f9", "\u00fa", "\u00fb", "\u00fc", "\u0169" ], "character": "u" }, "uppercase": { "accents": [ "\u00d9", "\u00da", "\u00db", "\u00dc", "\u0168" ], "character": "U" } }, { "lowercase": { "accents": [ "\u00ec", "\u00ed", "\u00ee", "\u00ef", "\u0129" ], "character": "i" }, "uppercase": { "accents": [ "\u00cc", "\u00cd", "\u00ce", "\u00cf", "\u0128" ], "character": "I" } }, { "lowercase": { "accents": [ "\u00f2", "\u00f3", "\u00f4", "\u00f5", "\u00f6" ], "character": "o" }, "uppercase": { "accents": [ "\u00d2", "\u00d3", "\u00d4", "\u00d5", "\u00d6" ], "character": "O" } }, { "lowercase": "p", "uppercase": "P" }, "BACKSPACE" ], "items": { "$ref": "#/$defs/key" }, "type": "array" }, "type": "array" }, "supportedLanguages": { "description": "An array of IETF language tags representing the languages this keyboard layout supports.", "items": { "suggestions": { "Arabic": "ar", "Czech": "cs", "Danish": "da", "Dutch": "nl", "English": "en", "French": "fr", "German": "de", "Greek": "el", "Hungarian": "hu", "Italian": "it", "Polish": "pl", "Portuguese": "pt", "Russian": "ru", "Spanish": "es" }, "type": "string" }, "type": "array" }, "title": { "description": "The string to present to the end user when selecting this layout.", "type": "string" } }, "required": [ "id", "name", "title", "alias", "rows" ], "type": "object" }, "backupConfig": { "$defs": { "key": { "oneOf": [ { "additionalProperties": false, "example": { "lowercase": "a", "uppercase": "A" }, "properties": { "lowercase": { "$ref": "#/$defs/keyVariant" }, "uppercase": { "$ref": "#/$defs/keyVariant" } }, "required": [ "lowercase" ], "type": "object" }, { "description": "Use one of the specific enum values to add a system key before or after the keys on this row.", "enum": [ "BACKSPACE", "SUBMIT", "SHIFT", "CANCEL", "CAPSLOCK", "NUMERIC_LAYOUT" ], "example": "SHIFT", "type": "string" } ] }, "keyVariant": { "oneOf": [ { "type": [ "string", "number" ] }, { "additionalProperties": false, "properties": { "accents": { "description": "Variants of this key to add after long press or the hold key is toggled.", "items": { "type": "string" }, "type": "array" }, "alias": { "description": "An alternate presentation string for this key.", "type": [ "string", "null" ] }, "character": { "description": "The actual character (sequence) to submit when this key is pressed.", "type": [ "string", "number" ] } }, "required": [ "character" ], "type": "object" } ] } }, "additionalProperties": false, "properties": { "alias": { "description": "A short (2-3 character) string to identify this keyboard, to present on the language selector button", "type": "string" }, "id": { "description": "A fixed UUID for the keyboard layout.", "type": "string" }, "labels": { "additionalProperties": false, "default": { "BACKSPACE": "Backsp", "CANCEL": "Cancel", "SHIFT": "Shift", "SPACE": "Space", "SUBMIT": "Enter" }, "description": "Localized strings to change the text on various system keys", "properties": { "ALPHABET_LAYOUT": { "default": "ABC", "description": "A short string to display while in numeric entry mode, indicating the switch back to standard entry mode.", "type": "string" }, "BACKSPACE": { "default": "Backsp", "type": "string" }, "CANCEL": { "default": "Cancel", "type": "string" }, "CAPSLOCK": { "default": "CAPS", "type": "string" }, "NUMERIC_LAYOUT": { "default": "!123", "description": "A short string to display while in normal entry mode, indicating the switch to numeric/symbols entry mode.", "type": "string" }, "SHIFT": { "default": "Shift", "type": "string" }, "SPACE": { "default": "Space", "type": "string" }, "SUBMIT": { "default": "Enter", "type": "string" } }, "type": "object" }, "name": { "description": "The name of this keyboard layout.", "pattern": "^[a-zA-Z][a-zA-Z0-9_]+$", "type": "string" }, "rows": { "items": { "example": [ { "lowercase": "q", "uppercase": "Q" }, { "lowercase": "w", "uppercase": "W" }, { "lowercase": { "accents": [ "\u00e8", "\u00e9", "\u00ea", "\u00eb", "\u0115" ], "character": "e" }, "uppercase": { "accents": [ "\u00c8", "\u00c9", "\u00ca", "\u00cb", "\u0114" ], "character": "E" } }, { "lowercase": "r", "uppercase": "R" }, { "lowercase": "t", "uppercase": "T" }, { "lowercase": "y", "uppercase": "Y" }, { "lowercase": { "accents": [ "\u00f9", "\u00fa", "\u00fb", "\u00fc", "\u0169" ], "character": "u" }, "uppercase": { "accents": [ "\u00d9", "\u00da", "\u00db", "\u00dc", "\u0168" ], "character": "U" } }, { "lowercase": { "accents": [ "\u00ec", "\u00ed", "\u00ee", "\u00ef", "\u0129" ], "character": "i" }, "uppercase": { "accents": [ "\u00cc", "\u00cd", "\u00ce", "\u00cf", "\u0128" ], "character": "I" } }, { "lowercase": { "accents": [ "\u00f2", "\u00f3", "\u00f4", "\u00f5", "\u00f6" ], "character": "o" }, "uppercase": { "accents": [ "\u00d2", "\u00d3", "\u00d4", "\u00d5", "\u00d6" ], "character": "O" } }, { "lowercase": "p", "uppercase": "P" }, "BACKSPACE" ], "items": { "$ref": "#/$defs/key" }, "type": "array" }, "type": "array" }, "supportedLanguages": { "description": "An array of IETF language tags representing the languages this keyboard layout supports.", "items": { "suggestions": { "Arabic": "ar", "Czech": "cs", "Danish": "da", "Dutch": "nl", "English": "en", "French": "fr", "German": "de", "Greek": "el", "Hungarian": "hu", "Italian": "it", "Polish": "pl", "Portuguese": "pt", "Russian": "ru", "Spanish": "es" }, "type": "string" }, "type": "array" }, "title": { "description": "The string to present to the end user when selecting this layout.", "type": "string" } }, "required": [ "id", "name", "title", "alias", "rows" ], "type": "object" } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-keyboard-layouts" ], "summary": "Create Keyboard Layouts", "description": "Create a new Keyboard Layouts resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "$defs": { "key": { "oneOf": [ { "additionalProperties": false, "example": { "lowercase": "a", "uppercase": "A" }, "properties": { "lowercase": { "$ref": "#/$defs/keyVariant" }, "uppercase": { "$ref": "#/$defs/keyVariant" } }, "required": [ "lowercase" ], "type": "object" }, { "description": "Use one of the specific enum values to add a system key before or after the keys on this row.", "enum": [ "BACKSPACE", "SUBMIT", "SHIFT", "CANCEL", "CAPSLOCK", "NUMERIC_LAYOUT" ], "example": "SHIFT", "type": "string" } ] }, "keyVariant": { "oneOf": [ { "type": [ "string", "number" ] }, { "additionalProperties": false, "properties": { "accents": { "description": "Variants of this key to add after long press or the hold key is toggled.", "items": { "type": "string" }, "type": "array" }, "alias": { "description": "An alternate presentation string for this key.", "type": [ "string", "null" ] }, "character": { "description": "The actual character (sequence) to submit when this key is pressed.", "type": [ "string", "number" ] } }, "required": [ "character" ], "type": "object" } ] } }, "additionalProperties": false, "properties": { "alias": { "description": "A short (2-3 character) string to identify this keyboard, to present on the language selector button", "type": "string" }, "id": { "description": "A fixed UUID for the keyboard layout.", "type": "string" }, "labels": { "additionalProperties": false, "default": { "BACKSPACE": "Backsp", "CANCEL": "Cancel", "SHIFT": "Shift", "SPACE": "Space", "SUBMIT": "Enter" }, "description": "Localized strings to change the text on various system keys", "properties": { "ALPHABET_LAYOUT": { "default": "ABC", "description": "A short string to display while in numeric entry mode, indicating the switch back to standard entry mode.", "type": "string" }, "BACKSPACE": { "default": "Backsp", "type": "string" }, "CANCEL": { "default": "Cancel", "type": "string" }, "CAPSLOCK": { "default": "CAPS", "type": "string" }, "NUMERIC_LAYOUT": { "default": "!123", "description": "A short string to display while in normal entry mode, indicating the switch to numeric/symbols entry mode.", "type": "string" }, "SHIFT": { "default": "Shift", "type": "string" }, "SPACE": { "default": "Space", "type": "string" }, "SUBMIT": { "default": "Enter", "type": "string" } }, "type": "object" }, "name": { "description": "The name of this keyboard layout.", "pattern": "^[a-zA-Z][a-zA-Z0-9_]+$", "type": "string" }, "rows": { "items": { "example": [ { "lowercase": "q", "uppercase": "Q" }, { "lowercase": "w", "uppercase": "W" }, { "lowercase": { "accents": [ "\u00e8", "\u00e9", "\u00ea", "\u00eb", "\u0115" ], "character": "e" }, "uppercase": { "accents": [ "\u00c8", "\u00c9", "\u00ca", "\u00cb", "\u0114" ], "character": "E" } }, { "lowercase": "r", "uppercase": "R" }, { "lowercase": "t", "uppercase": "T" }, { "lowercase": "y", "uppercase": "Y" }, { "lowercase": { "accents": [ "\u00f9", "\u00fa", "\u00fb", "\u00fc", "\u0169" ], "character": "u" }, "uppercase": { "accents": [ "\u00d9", "\u00da", "\u00db", "\u00dc", "\u0168" ], "character": "U" } }, { "lowercase": { "accents": [ "\u00ec", "\u00ed", "\u00ee", "\u00ef", "\u0129" ], "character": "i" }, "uppercase": { "accents": [ "\u00cc", "\u00cd", "\u00ce", "\u00cf", "\u0128" ], "character": "I" } }, { "lowercase": { "accents": [ "\u00f2", "\u00f3", "\u00f4", "\u00f5", "\u00f6" ], "character": "o" }, "uppercase": { "accents": [ "\u00d2", "\u00d3", "\u00d4", "\u00d5", "\u00d6" ], "character": "O" } }, { "lowercase": "p", "uppercase": "P" }, "BACKSPACE" ], "items": { "$ref": "#/$defs/key" }, "type": "array" }, "type": "array" }, "supportedLanguages": { "description": "An array of IETF language tags representing the languages this keyboard layout supports.", "items": { "suggestions": { "Arabic": "ar", "Czech": "cs", "Danish": "da", "Dutch": "nl", "English": "en", "French": "fr", "German": "de", "Greek": "el", "Hungarian": "hu", "Italian": "it", "Polish": "pl", "Portuguese": "pt", "Russian": "ru", "Spanish": "es" }, "type": "string" }, "type": "array" }, "title": { "description": "The string to present to the end user when selecting this layout.", "type": "string" } }, "required": [ "id", "name", "title", "alias", "rows" ], "type": "object" }, "backupConfig": { "$defs": { "key": { "oneOf": [ { "additionalProperties": false, "example": { "lowercase": "a", "uppercase": "A" }, "properties": { "lowercase": { "$ref": "#/$defs/keyVariant" }, "uppercase": { "$ref": "#/$defs/keyVariant" } }, "required": [ "lowercase" ], "type": "object" }, { "description": "Use one of the specific enum values to add a system key before or after the keys on this row.", "enum": [ "BACKSPACE", "SUBMIT", "SHIFT", "CANCEL", "CAPSLOCK", "NUMERIC_LAYOUT" ], "example": "SHIFT", "type": "string" } ] }, "keyVariant": { "oneOf": [ { "type": [ "string", "number" ] }, { "additionalProperties": false, "properties": { "accents": { "description": "Variants of this key to add after long press or the hold key is toggled.", "items": { "type": "string" }, "type": "array" }, "alias": { "description": "An alternate presentation string for this key.", "type": [ "string", "null" ] }, "character": { "description": "The actual character (sequence) to submit when this key is pressed.", "type": [ "string", "number" ] } }, "required": [ "character" ], "type": "object" } ] } }, "additionalProperties": false, "properties": { "alias": { "description": "A short (2-3 character) string to identify this keyboard, to present on the language selector button", "type": "string" }, "id": { "description": "A fixed UUID for the keyboard layout.", "type": "string" }, "labels": { "additionalProperties": false, "default": { "BACKSPACE": "Backsp", "CANCEL": "Cancel", "SHIFT": "Shift", "SPACE": "Space", "SUBMIT": "Enter" }, "description": "Localized strings to change the text on various system keys", "properties": { "ALPHABET_LAYOUT": { "default": "ABC", "description": "A short string to display while in numeric entry mode, indicating the switch back to standard entry mode.", "type": "string" }, "BACKSPACE": { "default": "Backsp", "type": "string" }, "CANCEL": { "default": "Cancel", "type": "string" }, "CAPSLOCK": { "default": "CAPS", "type": "string" }, "NUMERIC_LAYOUT": { "default": "!123", "description": "A short string to display while in normal entry mode, indicating the switch to numeric/symbols entry mode.", "type": "string" }, "SHIFT": { "default": "Shift", "type": "string" }, "SPACE": { "default": "Space", "type": "string" }, "SUBMIT": { "default": "Enter", "type": "string" } }, "type": "object" }, "name": { "description": "The name of this keyboard layout.", "pattern": "^[a-zA-Z][a-zA-Z0-9_]+$", "type": "string" }, "rows": { "items": { "example": [ { "lowercase": "q", "uppercase": "Q" }, { "lowercase": "w", "uppercase": "W" }, { "lowercase": { "accents": [ "\u00e8", "\u00e9", "\u00ea", "\u00eb", "\u0115" ], "character": "e" }, "uppercase": { "accents": [ "\u00c8", "\u00c9", "\u00ca", "\u00cb", "\u0114" ], "character": "E" } }, { "lowercase": "r", "uppercase": "R" }, { "lowercase": "t", "uppercase": "T" }, { "lowercase": "y", "uppercase": "Y" }, { "lowercase": { "accents": [ "\u00f9", "\u00fa", "\u00fb", "\u00fc", "\u0169" ], "character": "u" }, "uppercase": { "accents": [ "\u00d9", "\u00da", "\u00db", "\u00dc", "\u0168" ], "character": "U" } }, { "lowercase": { "accents": [ "\u00ec", "\u00ed", "\u00ee", "\u00ef", "\u0129" ], "character": "i" }, "uppercase": { "accents": [ "\u00cc", "\u00cd", "\u00ce", "\u00cf", "\u0128" ], "character": "I" } }, { "lowercase": { "accents": [ "\u00f2", "\u00f3", "\u00f4", "\u00f5", "\u00f6" ], "character": "o" }, "uppercase": { "accents": [ "\u00d2", "\u00d3", "\u00d4", "\u00d5", "\u00d6" ], "character": "O" } }, { "lowercase": "p", "uppercase": "P" }, "BACKSPACE" ], "items": { "$ref": "#/$defs/key" }, "type": "array" }, "type": "array" }, "supportedLanguages": { "description": "An array of IETF language tags representing the languages this keyboard layout supports.", "items": { "suggestions": { "Arabic": "ar", "Czech": "cs", "Danish": "da", "Dutch": "nl", "English": "en", "French": "fr", "German": "de", "Greek": "el", "Hungarian": "hu", "Italian": "it", "Polish": "pl", "Portuguese": "pt", "Russian": "ru", "Spanish": "es" }, "type": "string" }, "type": "array" }, "title": { "description": "The string to present to the end user when selecting this layout.", "type": "string" } }, "required": [ "id", "name", "title", "alias", "rows" ], "type": "object" } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/keyboard_layout/{name}/{signature}": { "delete": { "tags": [ "config-keyboard-layouts" ], "summary": "Delete Keyboard Layouts", "description": "Delete a Keyboard Layouts resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/local-system-properties": { "put": { "tags": [ "config-local-system-properties" ], "summary": "Modify Local System Properties", "description": "Modify one or more Local System Properties resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "systemUID": { "type": "string", "x-ignition-non-secret": false }, "demoTimeRemaining": { "default": 7200, "description": " Represents the amount of demo time remaining, in seconds. Updated on shutdown, not kept up-to-date while the system is running.\n", "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "systemUID": { "type": "string", "x-ignition-non-secret": false }, "demoTimeRemaining": { "default": 7200, "description": " Represents the amount of demo time remaining, in seconds. Updated on shutdown, not kept up-to-date while the system is running.\n", "type": "number", "x-ignition-non-secret": false } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-local-system-properties" ], "summary": "Create Local System Properties", "description": "Create the Local System Properties resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "systemUID": { "type": "string", "x-ignition-non-secret": false }, "demoTimeRemaining": { "default": 7200, "description": " Represents the amount of demo time remaining, in seconds. Updated on shutdown, not kept up-to-date while the system is running.\n", "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "systemUID": { "type": "string", "x-ignition-non-secret": false }, "demoTimeRemaining": { "default": 7200, "description": " Represents the amount of demo time remaining, in seconds. Updated on shutdown, not kept up-to-date while the system is running.\n", "type": "number", "x-ignition-non-secret": false } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/local-system-properties/{signature}": { "delete": { "tags": [ "config-local-system-properties" ], "summary": "Delete Local System Properties", "description": "Delete the Local System Properties resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/metrics-dashboard": { "put": { "tags": [ "config-metrics-dashboard" ], "summary": "Modify Metrics Dashboard", "description": "Modify one or more Metrics Dashboard resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "grid": { "description": "The grid layout of the dashboard", "type": "object", "properties": { "rows": { "description": "The number of rows in the grid", "type": "number", "x-ignition-non-secret": false }, "columns": { "description": "The number of columns in the grid", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "widgets": { "description": "The widgets on the dashboard", "type": "array", "items": { "type": "object", "properties": { "id": { "description": "The widget ID", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The description of the widget", "type": "string", "x-ignition-non-secret": false }, "position": { "description": "The position of the widget", "type": "object", "properties": { "columnEnd": { "description": "The ending column of the widget", "type": "number", "x-ignition-non-secret": false }, "columnStart": { "description": "The starting column of the widget", "type": "number", "x-ignition-non-secret": false }, "rowEnd": { "description": "The ending row of the widget", "type": "number", "x-ignition-non-secret": false }, "rowStart": { "description": "The starting row of the widget", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "grid": { "description": "The grid layout of the dashboard", "type": "object", "properties": { "rows": { "description": "The number of rows in the grid", "type": "number", "x-ignition-non-secret": false }, "columns": { "description": "The number of columns in the grid", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "widgets": { "description": "The widgets on the dashboard", "type": "array", "items": { "type": "object", "properties": { "id": { "description": "The widget ID", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The description of the widget", "type": "string", "x-ignition-non-secret": false }, "position": { "description": "The position of the widget", "type": "object", "properties": { "columnEnd": { "description": "The ending column of the widget", "type": "number", "x-ignition-non-secret": false }, "columnStart": { "description": "The starting column of the widget", "type": "number", "x-ignition-non-secret": false }, "rowEnd": { "description": "The ending row of the widget", "type": "number", "x-ignition-non-secret": false }, "rowStart": { "description": "The starting row of the widget", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-metrics-dashboard" ], "summary": "Create Metrics Dashboard", "description": "Create a new Metrics Dashboard resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "grid": { "description": "The grid layout of the dashboard", "type": "object", "properties": { "rows": { "description": "The number of rows in the grid", "type": "number", "x-ignition-non-secret": false }, "columns": { "description": "The number of columns in the grid", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "widgets": { "description": "The widgets on the dashboard", "type": "array", "items": { "type": "object", "properties": { "id": { "description": "The widget ID", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The description of the widget", "type": "string", "x-ignition-non-secret": false }, "position": { "description": "The position of the widget", "type": "object", "properties": { "columnEnd": { "description": "The ending column of the widget", "type": "number", "x-ignition-non-secret": false }, "columnStart": { "description": "The starting column of the widget", "type": "number", "x-ignition-non-secret": false }, "rowEnd": { "description": "The ending row of the widget", "type": "number", "x-ignition-non-secret": false }, "rowStart": { "description": "The starting row of the widget", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "grid": { "description": "The grid layout of the dashboard", "type": "object", "properties": { "rows": { "description": "The number of rows in the grid", "type": "number", "x-ignition-non-secret": false }, "columns": { "description": "The number of columns in the grid", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "widgets": { "description": "The widgets on the dashboard", "type": "array", "items": { "type": "object", "properties": { "id": { "description": "The widget ID", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The description of the widget", "type": "string", "x-ignition-non-secret": false }, "position": { "description": "The position of the widget", "type": "object", "properties": { "columnEnd": { "description": "The ending column of the widget", "type": "number", "x-ignition-non-secret": false }, "columnStart": { "description": "The starting column of the widget", "type": "number", "x-ignition-non-secret": false }, "rowEnd": { "description": "The ending row of the widget", "type": "number", "x-ignition-non-secret": false }, "rowStart": { "description": "The starting row of the widget", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/metrics-dashboard/{name}/{signature}": { "delete": { "tags": [ "config-metrics-dashboard" ], "summary": "Delete Metrics Dashboard", "description": "Delete a Metrics Dashboard resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/oauth2-client": { "put": { "tags": [ "config-oauth2-client" ], "summary": "Modify OAuth2 Client", "description": "Modify one or more OAuth2 Client resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the authorization server. This value is provided by the authorization server." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the authorization server. This value is provided by the authorization server.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationUrl": { "type": "string", "title": "Authorization URL", "description": "Optional URL of the authorization server's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the authorization server on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenUrl": { "type": "string", "title": "Token URL", "description": "Required URL of the authorization server's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "httpVersion": { "type": "string", "title": "HTTP Version", "description": "The maximum HTTP version supported by the authorization server's token endpoint. The Gateway's HTTP client will use this version when making HTTP requests to the authorization server.", "enum": [ "HTTP_1_1", "HTTP_2" ] }, "httpConnectTimeout": { "type": "number", "title": "HTTP Connect Timeout", "description": "In the case where the Gateway's HTTP client needs to establish a new HTTP connection with the authorization server, if the connection cannot be established within the given amount of time in milliseconds, then the connection attempt and any pending request requiring the connection will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for the connection to be made)." }, "httpRequestTimeout": { "type": "number", "title": "HTTP Request Timeout", "description": "The timeout in milliseconds for each HTTP request sent from the Gateway's HTTP client to the authorization server. If an HTTP response is not received within the specified timeout after sending an HTTP request then the HTTP request will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for a response)." } }, "required": [ "clientId", "clientSecret", "tokenUrl", "httpVersion", "httpConnectTimeout", "httpRequestTimeout" ] }, "backupConfig": { "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the authorization server. This value is provided by the authorization server." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the authorization server. This value is provided by the authorization server.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationUrl": { "type": "string", "title": "Authorization URL", "description": "Optional URL of the authorization server's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the authorization server on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenUrl": { "type": "string", "title": "Token URL", "description": "Required URL of the authorization server's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "httpVersion": { "type": "string", "title": "HTTP Version", "description": "The maximum HTTP version supported by the authorization server's token endpoint. The Gateway's HTTP client will use this version when making HTTP requests to the authorization server.", "enum": [ "HTTP_1_1", "HTTP_2" ] }, "httpConnectTimeout": { "type": "number", "title": "HTTP Connect Timeout", "description": "In the case where the Gateway's HTTP client needs to establish a new HTTP connection with the authorization server, if the connection cannot be established within the given amount of time in milliseconds, then the connection attempt and any pending request requiring the connection will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for the connection to be made)." }, "httpRequestTimeout": { "type": "number", "title": "HTTP Request Timeout", "description": "The timeout in milliseconds for each HTTP request sent from the Gateway's HTTP client to the authorization server. If an HTTP response is not received within the specified timeout after sending an HTTP request then the HTTP request will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for a response)." } }, "required": [ "clientId", "clientSecret", "tokenUrl", "httpVersion", "httpConnectTimeout", "httpRequestTimeout" ] } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-oauth2-client" ], "summary": "Create OAuth2 Client", "description": "Create a new OAuth2 Client resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the authorization server. This value is provided by the authorization server." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the authorization server. This value is provided by the authorization server.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationUrl": { "type": "string", "title": "Authorization URL", "description": "Optional URL of the authorization server's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the authorization server on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenUrl": { "type": "string", "title": "Token URL", "description": "Required URL of the authorization server's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "httpVersion": { "type": "string", "title": "HTTP Version", "description": "The maximum HTTP version supported by the authorization server's token endpoint. The Gateway's HTTP client will use this version when making HTTP requests to the authorization server.", "enum": [ "HTTP_1_1", "HTTP_2" ] }, "httpConnectTimeout": { "type": "number", "title": "HTTP Connect Timeout", "description": "In the case where the Gateway's HTTP client needs to establish a new HTTP connection with the authorization server, if the connection cannot be established within the given amount of time in milliseconds, then the connection attempt and any pending request requiring the connection will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for the connection to be made)." }, "httpRequestTimeout": { "type": "number", "title": "HTTP Request Timeout", "description": "The timeout in milliseconds for each HTTP request sent from the Gateway's HTTP client to the authorization server. If an HTTP response is not received within the specified timeout after sending an HTTP request then the HTTP request will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for a response)." } }, "required": [ "clientId", "clientSecret", "tokenUrl", "httpVersion", "httpConnectTimeout", "httpRequestTimeout" ] }, "backupConfig": { "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the authorization server. This value is provided by the authorization server." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the authorization server. This value is provided by the authorization server.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationUrl": { "type": "string", "title": "Authorization URL", "description": "Optional URL of the authorization server's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the authorization server on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenUrl": { "type": "string", "title": "Token URL", "description": "Required URL of the authorization server's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "httpVersion": { "type": "string", "title": "HTTP Version", "description": "The maximum HTTP version supported by the authorization server's token endpoint. The Gateway's HTTP client will use this version when making HTTP requests to the authorization server.", "enum": [ "HTTP_1_1", "HTTP_2" ] }, "httpConnectTimeout": { "type": "number", "title": "HTTP Connect Timeout", "description": "In the case where the Gateway's HTTP client needs to establish a new HTTP connection with the authorization server, if the connection cannot be established within the given amount of time in milliseconds, then the connection attempt and any pending request requiring the connection will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for the connection to be made)." }, "httpRequestTimeout": { "type": "number", "title": "HTTP Request Timeout", "description": "The timeout in milliseconds for each HTTP request sent from the Gateway's HTTP client to the authorization server. If an HTTP response is not received within the specified timeout after sending an HTTP request then the HTTP request will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for a response)." } }, "required": [ "clientId", "clientSecret", "tokenUrl", "httpVersion", "httpConnectTimeout", "httpRequestTimeout" ] } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/oauth2-client/{name}/{signature}": { "delete": { "tags": [ "config-oauth2-client" ], "summary": "Delete OAuth2 Client", "description": "Delete a OAuth2 Client resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/opc-connection": { "put": { "tags": [ "opc-connection" ], "summary": "Modify OPC Connections", "description": "Modify one or more OPC Connections resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "com.inductiveautomation.OpcUaServerType" ] }, "readOnly": { "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/opc-connection/com.inductiveautomation.OpcUaServerType", "title": "com.inductiveautomation.OpcUaServerType", "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "securityPolicy": { "type": "string", "enum": [ "None", "Basic128Rsa15", "Basic256", "Basic256Sha256", "Aes128_Sha256_RsaOaep", "Aes256_Sha256_RsaPss" ], "x-ignition-non-secret": false }, "securityMode": { "type": "string", "enum": [ "Invalid", "None", "Sign", "SignAndEncrypt" ], "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "keepAlive": { "type": "object", "properties": { "failuresAllowed": { "type": "number", "x-ignition-non-secret": false }, "interval": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectTimeout": { "type": "number", "x-ignition-non-secret": false }, "acknowledgeTimeout": { "type": "number", "x-ignition-non-secret": false }, "requestTimeout": { "type": "number", "x-ignition-non-secret": false }, "sessionTimeout": { "type": "number", "x-ignition-non-secret": false }, "maxPerOperation": { "type": "number", "x-ignition-non-secret": false }, "maxReferencesPerNode": { "type": "number", "x-ignition-non-secret": false }, "maxPendingPublishRequests": { "type": "number", "x-ignition-non-secret": false }, "maxNotificationsPerPublish": { "type": "number", "x-ignition-non-secret": false }, "maxMessageSize": { "type": "number", "x-ignition-non-secret": false }, "maxArrayLength": { "type": "number", "x-ignition-non-secret": false }, "maxStringLength": { "type": "number", "x-ignition-non-secret": false }, "browseOrigin": { "type": "string", "enum": [ "OBJECTS_FOLDER", "ROOT_FOLDER" ], "x-ignition-non-secret": false }, "deprecatedDataTypeDictionarySupport": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "security": { "type": "object", "properties": { "certificateValidationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "keyStoreAlias": { "type": "string", "x-ignition-non-secret": true }, "keyStoreAliasPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "failover": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "threshold": { "type": "number", "x-ignition-non-secret": false }, "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "com.inductiveautomation.OpcUaServerType" ] }, "readOnly": { "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/opc-connection/com.inductiveautomation.OpcUaServerType", "title": "com.inductiveautomation.OpcUaServerType", "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "securityPolicy": { "type": "string", "enum": [ "None", "Basic128Rsa15", "Basic256", "Basic256Sha256", "Aes128_Sha256_RsaOaep", "Aes256_Sha256_RsaPss" ], "x-ignition-non-secret": false }, "securityMode": { "type": "string", "enum": [ "Invalid", "None", "Sign", "SignAndEncrypt" ], "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "keepAlive": { "type": "object", "properties": { "failuresAllowed": { "type": "number", "x-ignition-non-secret": false }, "interval": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectTimeout": { "type": "number", "x-ignition-non-secret": false }, "acknowledgeTimeout": { "type": "number", "x-ignition-non-secret": false }, "requestTimeout": { "type": "number", "x-ignition-non-secret": false }, "sessionTimeout": { "type": "number", "x-ignition-non-secret": false }, "maxPerOperation": { "type": "number", "x-ignition-non-secret": false }, "maxReferencesPerNode": { "type": "number", "x-ignition-non-secret": false }, "maxPendingPublishRequests": { "type": "number", "x-ignition-non-secret": false }, "maxNotificationsPerPublish": { "type": "number", "x-ignition-non-secret": false }, "maxMessageSize": { "type": "number", "x-ignition-non-secret": false }, "maxArrayLength": { "type": "number", "x-ignition-non-secret": false }, "maxStringLength": { "type": "number", "x-ignition-non-secret": false }, "browseOrigin": { "type": "string", "enum": [ "OBJECTS_FOLDER", "ROOT_FOLDER" ], "x-ignition-non-secret": false }, "deprecatedDataTypeDictionarySupport": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "security": { "type": "object", "properties": { "certificateValidationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "keyStoreAlias": { "type": "string", "x-ignition-non-secret": true }, "keyStoreAliasPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "failover": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "threshold": { "type": "number", "x-ignition-non-secret": false }, "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "opc-connection" ], "summary": "Create OPC Connections", "description": "Create a new OPC Connections resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "com.inductiveautomation.OpcUaServerType" ] }, "readOnly": { "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/opc-connection/com.inductiveautomation.OpcUaServerType", "title": "com.inductiveautomation.OpcUaServerType", "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "securityPolicy": { "type": "string", "enum": [ "None", "Basic128Rsa15", "Basic256", "Basic256Sha256", "Aes128_Sha256_RsaOaep", "Aes256_Sha256_RsaPss" ], "x-ignition-non-secret": false }, "securityMode": { "type": "string", "enum": [ "Invalid", "None", "Sign", "SignAndEncrypt" ], "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "keepAlive": { "type": "object", "properties": { "failuresAllowed": { "type": "number", "x-ignition-non-secret": false }, "interval": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectTimeout": { "type": "number", "x-ignition-non-secret": false }, "acknowledgeTimeout": { "type": "number", "x-ignition-non-secret": false }, "requestTimeout": { "type": "number", "x-ignition-non-secret": false }, "sessionTimeout": { "type": "number", "x-ignition-non-secret": false }, "maxPerOperation": { "type": "number", "x-ignition-non-secret": false }, "maxReferencesPerNode": { "type": "number", "x-ignition-non-secret": false }, "maxPendingPublishRequests": { "type": "number", "x-ignition-non-secret": false }, "maxNotificationsPerPublish": { "type": "number", "x-ignition-non-secret": false }, "maxMessageSize": { "type": "number", "x-ignition-non-secret": false }, "maxArrayLength": { "type": "number", "x-ignition-non-secret": false }, "maxStringLength": { "type": "number", "x-ignition-non-secret": false }, "browseOrigin": { "type": "string", "enum": [ "OBJECTS_FOLDER", "ROOT_FOLDER" ], "x-ignition-non-secret": false }, "deprecatedDataTypeDictionarySupport": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "security": { "type": "object", "properties": { "certificateValidationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "keyStoreAlias": { "type": "string", "x-ignition-non-secret": true }, "keyStoreAliasPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "failover": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "threshold": { "type": "number", "x-ignition-non-secret": false }, "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "com.inductiveautomation.OpcUaServerType" ] }, "readOnly": { "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/opc-connection/com.inductiveautomation.OpcUaServerType", "title": "com.inductiveautomation.OpcUaServerType", "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "securityPolicy": { "type": "string", "enum": [ "None", "Basic128Rsa15", "Basic256", "Basic256Sha256", "Aes128_Sha256_RsaOaep", "Aes256_Sha256_RsaPss" ], "x-ignition-non-secret": false }, "securityMode": { "type": "string", "enum": [ "Invalid", "None", "Sign", "SignAndEncrypt" ], "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "keepAlive": { "type": "object", "properties": { "failuresAllowed": { "type": "number", "x-ignition-non-secret": false }, "interval": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectTimeout": { "type": "number", "x-ignition-non-secret": false }, "acknowledgeTimeout": { "type": "number", "x-ignition-non-secret": false }, "requestTimeout": { "type": "number", "x-ignition-non-secret": false }, "sessionTimeout": { "type": "number", "x-ignition-non-secret": false }, "maxPerOperation": { "type": "number", "x-ignition-non-secret": false }, "maxReferencesPerNode": { "type": "number", "x-ignition-non-secret": false }, "maxPendingPublishRequests": { "type": "number", "x-ignition-non-secret": false }, "maxNotificationsPerPublish": { "type": "number", "x-ignition-non-secret": false }, "maxMessageSize": { "type": "number", "x-ignition-non-secret": false }, "maxArrayLength": { "type": "number", "x-ignition-non-secret": false }, "maxStringLength": { "type": "number", "x-ignition-non-secret": false }, "browseOrigin": { "type": "string", "enum": [ "OBJECTS_FOLDER", "ROOT_FOLDER" ], "x-ignition-non-secret": false }, "deprecatedDataTypeDictionarySupport": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "security": { "type": "object", "properties": { "certificateValidationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "keyStoreAlias": { "type": "string", "x-ignition-non-secret": true }, "keyStoreAliasPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "failover": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "threshold": { "type": "number", "x-ignition-non-secret": false }, "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/opc-connection/{name}/{signature}": { "delete": { "tags": [ "opc-connection" ], "summary": "Delete OPC Connections", "description": "Delete a OPC Connections resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/quickstart": { "put": { "tags": [ "quickstart" ], "summary": "Modify Quick Start Configuration", "description": "Modify one or more Quick Start Configuration resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "finished": { "type": "boolean", "description": "True when the Quick Start project has been completed by the user or otherwise cancelled", "examples": [ false ] }, "steps": { "type": "array", "description": "The list of steps in the Quick Start workflow", "examples": [ [ { "completed": false, "name": "INSTALL" }, { "completed": false, "name": "ENABLED" }, { "completed": false, "name": "DESIGNER" }, { "completed": false, "name": "PROJECT" }, { "completed": false, "name": "SESSION" } ] ] } }, "description": "Ignition Quick Start Project State Configuration" }, "backupConfig": { "type": "object", "properties": { "finished": { "type": "boolean", "description": "True when the Quick Start project has been completed by the user or otherwise cancelled", "examples": [ false ] }, "steps": { "type": "array", "description": "The list of steps in the Quick Start workflow", "examples": [ [ { "completed": false, "name": "INSTALL" }, { "completed": false, "name": "ENABLED" }, { "completed": false, "name": "DESIGNER" }, { "completed": false, "name": "PROJECT" }, { "completed": false, "name": "SESSION" } ] ] } }, "description": "Ignition Quick Start Project State Configuration" } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "quickstart" ], "summary": "Create Quick Start Configuration", "description": "Create the Quick Start Configuration resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "finished": { "type": "boolean", "description": "True when the Quick Start project has been completed by the user or otherwise cancelled", "examples": [ false ] }, "steps": { "type": "array", "description": "The list of steps in the Quick Start workflow", "examples": [ [ { "completed": false, "name": "INSTALL" }, { "completed": false, "name": "ENABLED" }, { "completed": false, "name": "DESIGNER" }, { "completed": false, "name": "PROJECT" }, { "completed": false, "name": "SESSION" } ] ] } }, "description": "Ignition Quick Start Project State Configuration" }, "backupConfig": { "type": "object", "properties": { "finished": { "type": "boolean", "description": "True when the Quick Start project has been completed by the user or otherwise cancelled", "examples": [ false ] }, "steps": { "type": "array", "description": "The list of steps in the Quick Start workflow", "examples": [ [ { "completed": false, "name": "INSTALL" }, { "completed": false, "name": "ENABLED" }, { "completed": false, "name": "DESIGNER" }, { "completed": false, "name": "PROJECT" }, { "completed": false, "name": "SESSION" } ] ] } }, "description": "Ignition Quick Start Project State Configuration" } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/quickstart/{signature}": { "delete": { "tags": [ "quickstart" ], "summary": "Delete Quick Start Configuration", "description": "Delete the Quick Start Configuration resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/roster-config": { "put": { "tags": [ "roster-config" ], "summary": "Modify Rosters", "description": "Modify one or more Rosters resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "users": { "description": "The list of users assigned to this On-Call Roster", "type": "array", "items": { "type": "object", "properties": { "userId": { "description": "The ID of the User.", "type": "string", "x-ignition-non-secret": false }, "profile": { "description": "Name of the User's Source Profile", "type": "string", "x-ignition-non-secret": false } }, "required": [ "userId", "profile" ] }, "x-ignition-non-secret": false } }, "required": [ "users" ] }, "backupConfig": { "type": "object", "properties": { "users": { "description": "The list of users assigned to this On-Call Roster", "type": "array", "items": { "type": "object", "properties": { "userId": { "description": "The ID of the User.", "type": "string", "x-ignition-non-secret": false }, "profile": { "description": "Name of the User's Source Profile", "type": "string", "x-ignition-non-secret": false } }, "required": [ "userId", "profile" ] }, "x-ignition-non-secret": false } }, "required": [ "users" ] } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "roster-config" ], "summary": "Create Rosters", "description": "Create a new Rosters resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "users": { "description": "The list of users assigned to this On-Call Roster", "type": "array", "items": { "type": "object", "properties": { "userId": { "description": "The ID of the User.", "type": "string", "x-ignition-non-secret": false }, "profile": { "description": "Name of the User's Source Profile", "type": "string", "x-ignition-non-secret": false } }, "required": [ "userId", "profile" ] }, "x-ignition-non-secret": false } }, "required": [ "users" ] }, "backupConfig": { "type": "object", "properties": { "users": { "description": "The list of users assigned to this On-Call Roster", "type": "array", "items": { "type": "object", "properties": { "userId": { "description": "The ID of the User.", "type": "string", "x-ignition-non-secret": false }, "profile": { "description": "Name of the User's Source Profile", "type": "string", "x-ignition-non-secret": false } }, "required": [ "userId", "profile" ] }, "x-ignition-non-secret": false } }, "required": [ "users" ] } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/roster-config/{name}/{signature}": { "delete": { "tags": [ "roster-config" ], "summary": "Delete Rosters", "description": "Delete a Rosters resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/schedule": { "put": { "tags": [ "config-alarm" ], "summary": "Modify Schedule", "description": "Modify one or more Schedule resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic schedule", "composite schedule" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/schedule/basic schedule", "title": "basic schedule", "type": "object", "properties": { "observeHolidays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "weekDays": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "weekDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "monday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "tuesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "wednesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "thursday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "friday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "saturday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "sunday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "mondayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "tuesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "wednesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "thursdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "fridayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "saturdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "sundayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "repeatMode": { "default": "Off", "type": "string", "enum": [ "Off", "Weekly", "Daily" ], "x-ignition-non-secret": false }, "repeatOn": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "repeatOff": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "startingAt": { "type": "string", "format": "date-time", "x-ignition-non-secret": false } } }, { "$id": "ignition/schedule/composite schedule", "title": "composite schedule", "type": "object", "properties": { "schedule1": { "description": "Schedule 1 Name", "examples": [ "BasicSchedule1" ], "type": "string", "x-ignition-non-secret": false }, "schedule2": { "description": "Schedule 2 Name", "examples": [ "BasicSchedule2" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "schedule1", "schedule2" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic schedule", "composite schedule" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/schedule/basic schedule", "title": "basic schedule", "type": "object", "properties": { "observeHolidays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "weekDays": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "weekDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "monday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "tuesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "wednesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "thursday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "friday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "saturday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "sunday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "mondayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "tuesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "wednesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "thursdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "fridayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "saturdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "sundayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "repeatMode": { "default": "Off", "type": "string", "enum": [ "Off", "Weekly", "Daily" ], "x-ignition-non-secret": false }, "repeatOn": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "repeatOff": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "startingAt": { "type": "string", "format": "date-time", "x-ignition-non-secret": false } } }, { "$id": "ignition/schedule/composite schedule", "title": "composite schedule", "type": "object", "properties": { "schedule1": { "description": "Schedule 1 Name", "examples": [ "BasicSchedule1" ], "type": "string", "x-ignition-non-secret": false }, "schedule2": { "description": "Schedule 2 Name", "examples": [ "BasicSchedule2" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "schedule1", "schedule2" ] } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-alarm" ], "summary": "Create Schedule", "description": "Create a new Schedule resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic schedule", "composite schedule" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/schedule/basic schedule", "title": "basic schedule", "type": "object", "properties": { "observeHolidays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "weekDays": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "weekDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "monday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "tuesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "wednesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "thursday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "friday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "saturday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "sunday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "mondayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "tuesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "wednesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "thursdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "fridayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "saturdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "sundayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "repeatMode": { "default": "Off", "type": "string", "enum": [ "Off", "Weekly", "Daily" ], "x-ignition-non-secret": false }, "repeatOn": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "repeatOff": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "startingAt": { "type": "string", "format": "date-time", "x-ignition-non-secret": false } } }, { "$id": "ignition/schedule/composite schedule", "title": "composite schedule", "type": "object", "properties": { "schedule1": { "description": "Schedule 1 Name", "examples": [ "BasicSchedule1" ], "type": "string", "x-ignition-non-secret": false }, "schedule2": { "description": "Schedule 2 Name", "examples": [ "BasicSchedule2" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "schedule1", "schedule2" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic schedule", "composite schedule" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/schedule/basic schedule", "title": "basic schedule", "type": "object", "properties": { "observeHolidays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "weekDays": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "weekDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "monday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "tuesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "wednesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "thursday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "friday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "saturday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "sunday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "mondayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "tuesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "wednesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "thursdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "fridayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "saturdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "sundayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "repeatMode": { "default": "Off", "type": "string", "enum": [ "Off", "Weekly", "Daily" ], "x-ignition-non-secret": false }, "repeatOn": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "repeatOff": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "startingAt": { "type": "string", "format": "date-time", "x-ignition-non-secret": false } } }, { "$id": "ignition/schedule/composite schedule", "title": "composite schedule", "type": "object", "properties": { "schedule1": { "description": "Schedule 1 Name", "examples": [ "BasicSchedule1" ], "type": "string", "x-ignition-non-secret": false }, "schedule2": { "description": "Schedule 2 Name", "examples": [ "BasicSchedule2" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "schedule1", "schedule2" ] } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/schedule/{name}/{signature}": { "delete": { "tags": [ "config-alarm" ], "summary": "Delete Schedule", "description": "Delete a Schedule resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/secret-provider": { "put": { "tags": [ "config-secret-provider" ], "summary": "Modify Secret Provider", "description": "Modify one or more Secret Provider resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/secret-provider/internal", "title": "internal", "type": "object", "properties": { "secrets": { "type": "object", "title": "Secrets", "description": "The secrets configured on the provider.", "x-ignition-non-secret": true, "additionalProperties": { "type": "object", "properties": { "description": { "type": "string", "title": "Description", "description": "Description for the secret" }, "ciphertext": { "type": "object", "title": "Ciphertext", "description": "The JWE-encoded ciphertext value of the secret", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "ciphertext" ], "title": "Secret", "description": "The name for each entry is the name of the secret, and the value for each entry is the configuration for the secret." } } }, "required": [ "secrets" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/secret-provider/internal", "title": "internal", "type": "object", "properties": { "secrets": { "type": "object", "title": "Secrets", "description": "The secrets configured on the provider.", "x-ignition-non-secret": true, "additionalProperties": { "type": "object", "properties": { "description": { "type": "string", "title": "Description", "description": "Description for the secret" }, "ciphertext": { "type": "object", "title": "Ciphertext", "description": "The JWE-encoded ciphertext value of the secret", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "ciphertext" ], "title": "Secret", "description": "The name for each entry is the name of the secret, and the value for each entry is the configuration for the secret." } } }, "required": [ "secrets" ] } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-secret-provider" ], "summary": "Create Secret Provider", "description": "Create a new Secret Provider resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/secret-provider/internal", "title": "internal", "type": "object", "properties": { "secrets": { "type": "object", "title": "Secrets", "description": "The secrets configured on the provider.", "x-ignition-non-secret": true, "additionalProperties": { "type": "object", "properties": { "description": { "type": "string", "title": "Description", "description": "Description for the secret" }, "ciphertext": { "type": "object", "title": "Ciphertext", "description": "The JWE-encoded ciphertext value of the secret", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "ciphertext" ], "title": "Secret", "description": "The name for each entry is the name of the secret, and the value for each entry is the configuration for the secret." } } }, "required": [ "secrets" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/secret-provider/internal", "title": "internal", "type": "object", "properties": { "secrets": { "type": "object", "title": "Secrets", "description": "The secrets configured on the provider.", "x-ignition-non-secret": true, "additionalProperties": { "type": "object", "properties": { "description": { "type": "string", "title": "Description", "description": "Description for the secret" }, "ciphertext": { "type": "object", "title": "Ciphertext", "description": "The JWE-encoded ciphertext value of the secret", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "ciphertext" ], "title": "Secret", "description": "The name for each entry is the name of the secret, and the value for each entry is the configuration for the secret." } } }, "required": [ "secrets" ] } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/secret-provider/{name}/{signature}": { "delete": { "tags": [ "config-secret-provider" ], "summary": "Delete Secret Provider", "description": "Delete a Secret Provider resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/security-levels": { "put": { "tags": [ "config-security-levels" ], "summary": "Modify Security Levels", "description": "Modify one or more Security Levels resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" }, "description": "A tree of security levels." } } }, "backupConfig": { "properties": { "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" }, "description": "A tree of security levels." } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-security-levels" ], "summary": "Create Security Levels", "description": "Create the Security Levels resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" }, "description": "A tree of security levels." } } }, "backupConfig": { "properties": { "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" }, "description": "A tree of security levels." } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/security-levels/{signature}": { "delete": { "tags": [ "config-security-levels" ], "summary": "Delete Security Levels", "description": "Delete the Security Levels resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/security-properties": { "put": { "tags": [ "config-security-properties" ], "summary": "Modify Security Properties", "description": "Modify one or more Security Properties resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "systemAuthProfile": { "description": "This user source controls access to the Gateway's web configuration interface and the Designer.\n", "type": "string", "x-ignition-non-secret": false }, "systemIdentityProvider": { "description": "The name of the identity provider to use for system-level authentication.\n", "type": "string", "x-ignition-non-secret": false }, "forceIdpAuth": { "default": true, "description": "If true, users will be forced to authenticate through the identity provider.\n", "type": "boolean", "x-ignition-non-secret": false }, "designerAuthStrategy": { "default": "CLASSIC", "type": "string", "enum": [ "CLASSIC", "IDENTITY_PROVIDER" ], "x-ignition-non-secret": false }, "designerAuthTokenInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": true }, "designerAuthTokenTimeToLive": { "default": 0, "type": "number", "x-ignition-non-secret": true }, "designerRoleName": { "default": "Administrator", "description": "Users must belong to one of these roles in order to log into the ${DESIGNER}. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "createProjectRoleName": { "description": "Users must belong to one of these roles in order to create a new ${DESIGNER} project. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "accessPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "designerPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "createProjectPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "userInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": false }, "allowUserAdmin": { "default": false, "description": "Allows the administration of the gateway's system user source from the designer and client. Unless this is enabled, the Vision module's 'User Management Component' will be prevented from altering the gateway's system user source and scripts will not be able to alter users or roles.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowDesignerSSO": { "default": false, "description": "Allows single-sign-on authentication for logging into the designer if the gateway user source supports it.\n", "type": "boolean", "x-ignition-non-secret": false }, "gatewayAuditProfile": { "description": "The name of the audit profile that gateway-scoped actions will log to.\n", "type": "string", "x-ignition-non-secret": false } }, "required": [ "systemAuthProfile", "systemIdentityProvider" ] }, "backupConfig": { "properties": { "systemAuthProfile": { "description": "This user source controls access to the Gateway's web configuration interface and the Designer.\n", "type": "string", "x-ignition-non-secret": false }, "systemIdentityProvider": { "description": "The name of the identity provider to use for system-level authentication.\n", "type": "string", "x-ignition-non-secret": false }, "forceIdpAuth": { "default": true, "description": "If true, users will be forced to authenticate through the identity provider.\n", "type": "boolean", "x-ignition-non-secret": false }, "designerAuthStrategy": { "default": "CLASSIC", "type": "string", "enum": [ "CLASSIC", "IDENTITY_PROVIDER" ], "x-ignition-non-secret": false }, "designerAuthTokenInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": true }, "designerAuthTokenTimeToLive": { "default": 0, "type": "number", "x-ignition-non-secret": true }, "designerRoleName": { "default": "Administrator", "description": "Users must belong to one of these roles in order to log into the ${DESIGNER}. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "createProjectRoleName": { "description": "Users must belong to one of these roles in order to create a new ${DESIGNER} project. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "accessPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "designerPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "createProjectPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "userInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": false }, "allowUserAdmin": { "default": false, "description": "Allows the administration of the gateway's system user source from the designer and client. Unless this is enabled, the Vision module's 'User Management Component' will be prevented from altering the gateway's system user source and scripts will not be able to alter users or roles.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowDesignerSSO": { "default": false, "description": "Allows single-sign-on authentication for logging into the designer if the gateway user source supports it.\n", "type": "boolean", "x-ignition-non-secret": false }, "gatewayAuditProfile": { "description": "The name of the audit profile that gateway-scoped actions will log to.\n", "type": "string", "x-ignition-non-secret": false } }, "required": [ "systemAuthProfile", "systemIdentityProvider" ] } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-security-properties" ], "summary": "Create Security Properties", "description": "Create the Security Properties resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "systemAuthProfile": { "description": "This user source controls access to the Gateway's web configuration interface and the Designer.\n", "type": "string", "x-ignition-non-secret": false }, "systemIdentityProvider": { "description": "The name of the identity provider to use for system-level authentication.\n", "type": "string", "x-ignition-non-secret": false }, "forceIdpAuth": { "default": true, "description": "If true, users will be forced to authenticate through the identity provider.\n", "type": "boolean", "x-ignition-non-secret": false }, "designerAuthStrategy": { "default": "CLASSIC", "type": "string", "enum": [ "CLASSIC", "IDENTITY_PROVIDER" ], "x-ignition-non-secret": false }, "designerAuthTokenInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": true }, "designerAuthTokenTimeToLive": { "default": 0, "type": "number", "x-ignition-non-secret": true }, "designerRoleName": { "default": "Administrator", "description": "Users must belong to one of these roles in order to log into the ${DESIGNER}. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "createProjectRoleName": { "description": "Users must belong to one of these roles in order to create a new ${DESIGNER} project. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "accessPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "designerPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "createProjectPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "userInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": false }, "allowUserAdmin": { "default": false, "description": "Allows the administration of the gateway's system user source from the designer and client. Unless this is enabled, the Vision module's 'User Management Component' will be prevented from altering the gateway's system user source and scripts will not be able to alter users or roles.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowDesignerSSO": { "default": false, "description": "Allows single-sign-on authentication for logging into the designer if the gateway user source supports it.\n", "type": "boolean", "x-ignition-non-secret": false }, "gatewayAuditProfile": { "description": "The name of the audit profile that gateway-scoped actions will log to.\n", "type": "string", "x-ignition-non-secret": false } }, "required": [ "systemAuthProfile", "systemIdentityProvider" ] }, "backupConfig": { "properties": { "systemAuthProfile": { "description": "This user source controls access to the Gateway's web configuration interface and the Designer.\n", "type": "string", "x-ignition-non-secret": false }, "systemIdentityProvider": { "description": "The name of the identity provider to use for system-level authentication.\n", "type": "string", "x-ignition-non-secret": false }, "forceIdpAuth": { "default": true, "description": "If true, users will be forced to authenticate through the identity provider.\n", "type": "boolean", "x-ignition-non-secret": false }, "designerAuthStrategy": { "default": "CLASSIC", "type": "string", "enum": [ "CLASSIC", "IDENTITY_PROVIDER" ], "x-ignition-non-secret": false }, "designerAuthTokenInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": true }, "designerAuthTokenTimeToLive": { "default": 0, "type": "number", "x-ignition-non-secret": true }, "designerRoleName": { "default": "Administrator", "description": "Users must belong to one of these roles in order to log into the ${DESIGNER}. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "createProjectRoleName": { "description": "Users must belong to one of these roles in order to create a new ${DESIGNER} project. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "accessPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "designerPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "createProjectPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "userInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": false }, "allowUserAdmin": { "default": false, "description": "Allows the administration of the gateway's system user source from the designer and client. Unless this is enabled, the Vision module's 'User Management Component' will be prevented from altering the gateway's system user source and scripts will not be able to alter users or roles.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowDesignerSSO": { "default": false, "description": "Allows single-sign-on authentication for logging into the designer if the gateway user source supports it.\n", "type": "boolean", "x-ignition-non-secret": false }, "gatewayAuditProfile": { "description": "The name of the audit profile that gateway-scoped actions will log to.\n", "type": "string", "x-ignition-non-secret": false } }, "required": [ "systemAuthProfile", "systemIdentityProvider" ] } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/security-properties/{signature}": { "delete": { "tags": [ "config-security-properties" ], "summary": "Delete Security Properties", "description": "Delete the Security Properties resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/security-zone": { "put": { "tags": [ "config-security-zone" ], "summary": "Modify Security Zones", "description": "Modify one or more Security Zones resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "ipAddresses": { "description": "A list of addresses that this zone applies to, and the addresses may use wildcards or ranges. For example, '192.168.*.*' or '192.168.1-5.0-255'.", "type": "array", "items": { "type": "string", "ipAddresses": "string" }, "x-ignition-non-secret": false }, "hostNames": { "description": "A list of host names that this zone applies to. May use the wildcard '*', such as 'Manufacturing_*'. Host names are the system names of the machines generating the requests. For example, the computer name of the machine running a client.", "type": "array", "items": { "type": "string", "hostNames": "string" }, "x-ignition-non-secret": false }, "gatewayNames": { "description": "A list of gateway names that this zone applies to. May use the wildcard '*'. Gateway names are the names of the Ignition instance.", "type": "array", "items": { "type": "string", "gatewayNames": "string" }, "x-ignition-non-secret": false }, "isSecure": { "description": "If true, only connections over a secure connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "directConnection": { "description": "If true, only requests that come from a direct connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "scopeClient": { "description": "If false, requests from a client will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeDesigner": { "description": "If false, requests from designers will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeGateway": { "description": "If false, requests from the gateway scope will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "entityPolicies": { "description": "A list of entity policies that apply to this zone.", "type": "array", "items": { "type": "object", "properties": { "entityId": { "description": "The ID of the entity the policy applies to.", "type": "string", "x-ignition-non-secret": false }, "propName": { "description": "The property for the policy.", "type": "string", "x-ignition-non-secret": false }, "propValue": { "description": "The value for the property on the policy.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entityId", "propName" ] }, "x-ignition-non-secret": false }, "entityZonePolicy": { "description": "The entity zone policy that applies to this zone.", "type": "object", "properties": { "priority": { "description": "The priority for the policy.", "default": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "ipAddresses": { "description": "A list of addresses that this zone applies to, and the addresses may use wildcards or ranges. For example, '192.168.*.*' or '192.168.1-5.0-255'.", "type": "array", "items": { "type": "string", "ipAddresses": "string" }, "x-ignition-non-secret": false }, "hostNames": { "description": "A list of host names that this zone applies to. May use the wildcard '*', such as 'Manufacturing_*'. Host names are the system names of the machines generating the requests. For example, the computer name of the machine running a client.", "type": "array", "items": { "type": "string", "hostNames": "string" }, "x-ignition-non-secret": false }, "gatewayNames": { "description": "A list of gateway names that this zone applies to. May use the wildcard '*'. Gateway names are the names of the Ignition instance.", "type": "array", "items": { "type": "string", "gatewayNames": "string" }, "x-ignition-non-secret": false }, "isSecure": { "description": "If true, only connections over a secure connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "directConnection": { "description": "If true, only requests that come from a direct connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "scopeClient": { "description": "If false, requests from a client will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeDesigner": { "description": "If false, requests from designers will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeGateway": { "description": "If false, requests from the gateway scope will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "entityPolicies": { "description": "A list of entity policies that apply to this zone.", "type": "array", "items": { "type": "object", "properties": { "entityId": { "description": "The ID of the entity the policy applies to.", "type": "string", "x-ignition-non-secret": false }, "propName": { "description": "The property for the policy.", "type": "string", "x-ignition-non-secret": false }, "propValue": { "description": "The value for the property on the policy.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entityId", "propName" ] }, "x-ignition-non-secret": false }, "entityZonePolicy": { "description": "The entity zone policy that applies to this zone.", "type": "object", "properties": { "priority": { "description": "The priority for the policy.", "default": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-security-zone" ], "summary": "Create Security Zones", "description": "Create a new Security Zones resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "ipAddresses": { "description": "A list of addresses that this zone applies to, and the addresses may use wildcards or ranges. For example, '192.168.*.*' or '192.168.1-5.0-255'.", "type": "array", "items": { "type": "string", "ipAddresses": "string" }, "x-ignition-non-secret": false }, "hostNames": { "description": "A list of host names that this zone applies to. May use the wildcard '*', such as 'Manufacturing_*'. Host names are the system names of the machines generating the requests. For example, the computer name of the machine running a client.", "type": "array", "items": { "type": "string", "hostNames": "string" }, "x-ignition-non-secret": false }, "gatewayNames": { "description": "A list of gateway names that this zone applies to. May use the wildcard '*'. Gateway names are the names of the Ignition instance.", "type": "array", "items": { "type": "string", "gatewayNames": "string" }, "x-ignition-non-secret": false }, "isSecure": { "description": "If true, only connections over a secure connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "directConnection": { "description": "If true, only requests that come from a direct connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "scopeClient": { "description": "If false, requests from a client will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeDesigner": { "description": "If false, requests from designers will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeGateway": { "description": "If false, requests from the gateway scope will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "entityPolicies": { "description": "A list of entity policies that apply to this zone.", "type": "array", "items": { "type": "object", "properties": { "entityId": { "description": "The ID of the entity the policy applies to.", "type": "string", "x-ignition-non-secret": false }, "propName": { "description": "The property for the policy.", "type": "string", "x-ignition-non-secret": false }, "propValue": { "description": "The value for the property on the policy.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entityId", "propName" ] }, "x-ignition-non-secret": false }, "entityZonePolicy": { "description": "The entity zone policy that applies to this zone.", "type": "object", "properties": { "priority": { "description": "The priority for the policy.", "default": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "ipAddresses": { "description": "A list of addresses that this zone applies to, and the addresses may use wildcards or ranges. For example, '192.168.*.*' or '192.168.1-5.0-255'.", "type": "array", "items": { "type": "string", "ipAddresses": "string" }, "x-ignition-non-secret": false }, "hostNames": { "description": "A list of host names that this zone applies to. May use the wildcard '*', such as 'Manufacturing_*'. Host names are the system names of the machines generating the requests. For example, the computer name of the machine running a client.", "type": "array", "items": { "type": "string", "hostNames": "string" }, "x-ignition-non-secret": false }, "gatewayNames": { "description": "A list of gateway names that this zone applies to. May use the wildcard '*'. Gateway names are the names of the Ignition instance.", "type": "array", "items": { "type": "string", "gatewayNames": "string" }, "x-ignition-non-secret": false }, "isSecure": { "description": "If true, only connections over a secure connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "directConnection": { "description": "If true, only requests that come from a direct connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "scopeClient": { "description": "If false, requests from a client will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeDesigner": { "description": "If false, requests from designers will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeGateway": { "description": "If false, requests from the gateway scope will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "entityPolicies": { "description": "A list of entity policies that apply to this zone.", "type": "array", "items": { "type": "object", "properties": { "entityId": { "description": "The ID of the entity the policy applies to.", "type": "string", "x-ignition-non-secret": false }, "propName": { "description": "The property for the policy.", "type": "string", "x-ignition-non-secret": false }, "propValue": { "description": "The value for the property on the policy.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entityId", "propName" ] }, "x-ignition-non-secret": false }, "entityZonePolicy": { "description": "The entity zone policy that applies to this zone.", "type": "object", "properties": { "priority": { "description": "The priority for the policy.", "default": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/security-zone/{name}/{signature}": { "delete": { "tags": [ "config-security-zone" ], "summary": "Delete Security Zones", "description": "Delete a Security Zones resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/service-connector": { "put": { "tags": [ "service-connectors" ], "summary": "Modify Service Connectors", "description": "Modify one or more Service Connectors resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "kafka" ] } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/service-connector/kafka", "title": "kafka", "type": "object", "properties": { "bootstrapServers": { "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster.", "type": "array", "items": { "type": "string", "bootstrapServers": "string" }, "x-ignition-non-secret": false }, "saslMechanism": { "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.", "type": "string", "x-ignition-non-secret": false }, "securityProtocol": { "description": "Protocol used to communicate with brokers.", "type": "string", "enum": [ "PLAINTEXT", "SSL", "SASL_PLAINTEXT", "SASL_SSL" ], "x-ignition-non-secret": false }, "username": { "description": "Username to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism.", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Password to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism." }, "ssl": { "type": "object", "properties": { "protocol": { "description": "The SSL protocol used to generate the SSLContext.", "type": "string", "x-ignition-non-secret": false }, "keyPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password of the private key in the key store file or the PEM key specified in 'ssl.keystore.key'." }, "keystore": { "type": "object", "properties": { "type": { "description": "The file format of the key store file. This is optional for client. The values currently supported by the default `ssl.engine.factory.class` are [JKS, PKCS12, PEM].", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format." }, "key": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password'." } }, "x-ignition-non-secret": true }, "truststore": { "type": "object", "properties": { "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format." } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "props": { "type": "object", "properties": { "client": { "description": "Custom properties applied to client. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "consumer": { "description": "Custom properties to be applied to consumers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "producer": { "description": "Custom properties to be applied to producers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "bootstrapServers", "saslMechanism", "securityProtocol" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "kafka" ] } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/service-connector/kafka", "title": "kafka", "type": "object", "properties": { "bootstrapServers": { "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster.", "type": "array", "items": { "type": "string", "bootstrapServers": "string" }, "x-ignition-non-secret": false }, "saslMechanism": { "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.", "type": "string", "x-ignition-non-secret": false }, "securityProtocol": { "description": "Protocol used to communicate with brokers.", "type": "string", "enum": [ "PLAINTEXT", "SSL", "SASL_PLAINTEXT", "SASL_SSL" ], "x-ignition-non-secret": false }, "username": { "description": "Username to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism.", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Password to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism." }, "ssl": { "type": "object", "properties": { "protocol": { "description": "The SSL protocol used to generate the SSLContext.", "type": "string", "x-ignition-non-secret": false }, "keyPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password of the private key in the key store file or the PEM key specified in 'ssl.keystore.key'." }, "keystore": { "type": "object", "properties": { "type": { "description": "The file format of the key store file. This is optional for client. The values currently supported by the default `ssl.engine.factory.class` are [JKS, PKCS12, PEM].", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format." }, "key": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password'." } }, "x-ignition-non-secret": true }, "truststore": { "type": "object", "properties": { "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format." } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "props": { "type": "object", "properties": { "client": { "description": "Custom properties applied to client. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "consumer": { "description": "Custom properties to be applied to consumers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "producer": { "description": "Custom properties to be applied to producers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "bootstrapServers", "saslMechanism", "securityProtocol" ] } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "service-connectors" ], "summary": "Create Service Connectors", "description": "Create a new Service Connectors resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "kafka" ] } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/service-connector/kafka", "title": "kafka", "type": "object", "properties": { "bootstrapServers": { "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster.", "type": "array", "items": { "type": "string", "bootstrapServers": "string" }, "x-ignition-non-secret": false }, "saslMechanism": { "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.", "type": "string", "x-ignition-non-secret": false }, "securityProtocol": { "description": "Protocol used to communicate with brokers.", "type": "string", "enum": [ "PLAINTEXT", "SSL", "SASL_PLAINTEXT", "SASL_SSL" ], "x-ignition-non-secret": false }, "username": { "description": "Username to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism.", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Password to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism." }, "ssl": { "type": "object", "properties": { "protocol": { "description": "The SSL protocol used to generate the SSLContext.", "type": "string", "x-ignition-non-secret": false }, "keyPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password of the private key in the key store file or the PEM key specified in 'ssl.keystore.key'." }, "keystore": { "type": "object", "properties": { "type": { "description": "The file format of the key store file. This is optional for client. The values currently supported by the default `ssl.engine.factory.class` are [JKS, PKCS12, PEM].", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format." }, "key": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password'." } }, "x-ignition-non-secret": true }, "truststore": { "type": "object", "properties": { "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format." } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "props": { "type": "object", "properties": { "client": { "description": "Custom properties applied to client. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "consumer": { "description": "Custom properties to be applied to consumers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "producer": { "description": "Custom properties to be applied to producers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "bootstrapServers", "saslMechanism", "securityProtocol" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "kafka" ] } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/service-connector/kafka", "title": "kafka", "type": "object", "properties": { "bootstrapServers": { "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster.", "type": "array", "items": { "type": "string", "bootstrapServers": "string" }, "x-ignition-non-secret": false }, "saslMechanism": { "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.", "type": "string", "x-ignition-non-secret": false }, "securityProtocol": { "description": "Protocol used to communicate with brokers.", "type": "string", "enum": [ "PLAINTEXT", "SSL", "SASL_PLAINTEXT", "SASL_SSL" ], "x-ignition-non-secret": false }, "username": { "description": "Username to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism.", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Password to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism." }, "ssl": { "type": "object", "properties": { "protocol": { "description": "The SSL protocol used to generate the SSLContext.", "type": "string", "x-ignition-non-secret": false }, "keyPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password of the private key in the key store file or the PEM key specified in 'ssl.keystore.key'." }, "keystore": { "type": "object", "properties": { "type": { "description": "The file format of the key store file. This is optional for client. The values currently supported by the default `ssl.engine.factory.class` are [JKS, PKCS12, PEM].", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format." }, "key": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password'." } }, "x-ignition-non-secret": true }, "truststore": { "type": "object", "properties": { "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format." } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "props": { "type": "object", "properties": { "client": { "description": "Custom properties applied to client. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "consumer": { "description": "Custom properties to be applied to consumers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "producer": { "description": "Custom properties to be applied to producers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "bootstrapServers", "saslMechanism", "securityProtocol" ] } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/service-connector/{name}/{signature}": { "delete": { "tags": [ "service-connectors" ], "summary": "Delete Service Connectors", "description": "Delete a Service Connectors resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/store-and-forward-engine": { "put": { "tags": [ "config-store-forward" ], "summary": "Modify Store and Forward Engine", "description": "Modify one or more Store and Forward Engine resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "timeThresholdMs": { "description": "The maximum milliseconds time that data will be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardRateMs": { "description": "The rate in milliseconds at which data will be considered eligible for forwarding to any attached data sink.", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardingPolicy": { "description": "The forwarding policy used to determine where data should be read from when forwarding to any attached data sink. Note: If the policy is set to \"Primary,\" data will only be written to the secondary datastore (disk) when quarantining.", "type": "string", "enum": [ "ALL", "PRIMARY_ONLY", "SECONDARY_ONLY" ], "x-ignition-non-secret": false }, "forwardingSchedule": { "description": "A comma separated list of time ranges. Examples: 9:00-15:00, 9pm-5am, 20.30-04.30", "type": "string", "x-ignition-non-secret": false }, "isThirdParty": { "description": "Specifies whether the engine shouldn't be directly managed by the Store & Forward Manager.", "type": "boolean", "x-ignition-non-secret": false }, "dataThreshold": { "description": "The maximum amount of data that'll be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "batchSize": { "description": "The maximum amount of data that'll be batched when forwarding to either the secondary datastore (disk) or any attached data sink. This also determines the volume of data removed during each eviction cycle when using an eviction maintenance policy. Note: Data could be further batched within the data sink when processing incoming data.", "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "scanRateMs": { "description": "The rate in milliseconds at which data pipelines are scanned for determining data forwarding.", "minimum": 100, "type": "number", "x-ignition-non-secret": false }, "primaryMaintenancePolicy": { "description": "The optional maintenance policy for the primary datastore (memory).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "secondaryMaintenancePolicy": { "description": "The optional maintenance policy for the secondary datastore (disk).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "timeThresholdMs": { "description": "The maximum milliseconds time that data will be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardRateMs": { "description": "The rate in milliseconds at which data will be considered eligible for forwarding to any attached data sink.", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardingPolicy": { "description": "The forwarding policy used to determine where data should be read from when forwarding to any attached data sink. Note: If the policy is set to \"Primary,\" data will only be written to the secondary datastore (disk) when quarantining.", "type": "string", "enum": [ "ALL", "PRIMARY_ONLY", "SECONDARY_ONLY" ], "x-ignition-non-secret": false }, "forwardingSchedule": { "description": "A comma separated list of time ranges. Examples: 9:00-15:00, 9pm-5am, 20.30-04.30", "type": "string", "x-ignition-non-secret": false }, "isThirdParty": { "description": "Specifies whether the engine shouldn't be directly managed by the Store & Forward Manager.", "type": "boolean", "x-ignition-non-secret": false }, "dataThreshold": { "description": "The maximum amount of data that'll be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "batchSize": { "description": "The maximum amount of data that'll be batched when forwarding to either the secondary datastore (disk) or any attached data sink. This also determines the volume of data removed during each eviction cycle when using an eviction maintenance policy. Note: Data could be further batched within the data sink when processing incoming data.", "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "scanRateMs": { "description": "The rate in milliseconds at which data pipelines are scanned for determining data forwarding.", "minimum": 100, "type": "number", "x-ignition-non-secret": false }, "primaryMaintenancePolicy": { "description": "The optional maintenance policy for the primary datastore (memory).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "secondaryMaintenancePolicy": { "description": "The optional maintenance policy for the secondary datastore (disk).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-store-forward" ], "summary": "Create Store and Forward Engine", "description": "Create a new Store and Forward Engine resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "timeThresholdMs": { "description": "The maximum milliseconds time that data will be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardRateMs": { "description": "The rate in milliseconds at which data will be considered eligible for forwarding to any attached data sink.", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardingPolicy": { "description": "The forwarding policy used to determine where data should be read from when forwarding to any attached data sink. Note: If the policy is set to \"Primary,\" data will only be written to the secondary datastore (disk) when quarantining.", "type": "string", "enum": [ "ALL", "PRIMARY_ONLY", "SECONDARY_ONLY" ], "x-ignition-non-secret": false }, "forwardingSchedule": { "description": "A comma separated list of time ranges. Examples: 9:00-15:00, 9pm-5am, 20.30-04.30", "type": "string", "x-ignition-non-secret": false }, "isThirdParty": { "description": "Specifies whether the engine shouldn't be directly managed by the Store & Forward Manager.", "type": "boolean", "x-ignition-non-secret": false }, "dataThreshold": { "description": "The maximum amount of data that'll be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "batchSize": { "description": "The maximum amount of data that'll be batched when forwarding to either the secondary datastore (disk) or any attached data sink. This also determines the volume of data removed during each eviction cycle when using an eviction maintenance policy. Note: Data could be further batched within the data sink when processing incoming data.", "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "scanRateMs": { "description": "The rate in milliseconds at which data pipelines are scanned for determining data forwarding.", "minimum": 100, "type": "number", "x-ignition-non-secret": false }, "primaryMaintenancePolicy": { "description": "The optional maintenance policy for the primary datastore (memory).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "secondaryMaintenancePolicy": { "description": "The optional maintenance policy for the secondary datastore (disk).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "timeThresholdMs": { "description": "The maximum milliseconds time that data will be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardRateMs": { "description": "The rate in milliseconds at which data will be considered eligible for forwarding to any attached data sink.", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardingPolicy": { "description": "The forwarding policy used to determine where data should be read from when forwarding to any attached data sink. Note: If the policy is set to \"Primary,\" data will only be written to the secondary datastore (disk) when quarantining.", "type": "string", "enum": [ "ALL", "PRIMARY_ONLY", "SECONDARY_ONLY" ], "x-ignition-non-secret": false }, "forwardingSchedule": { "description": "A comma separated list of time ranges. Examples: 9:00-15:00, 9pm-5am, 20.30-04.30", "type": "string", "x-ignition-non-secret": false }, "isThirdParty": { "description": "Specifies whether the engine shouldn't be directly managed by the Store & Forward Manager.", "type": "boolean", "x-ignition-non-secret": false }, "dataThreshold": { "description": "The maximum amount of data that'll be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "batchSize": { "description": "The maximum amount of data that'll be batched when forwarding to either the secondary datastore (disk) or any attached data sink. This also determines the volume of data removed during each eviction cycle when using an eviction maintenance policy. Note: Data could be further batched within the data sink when processing incoming data.", "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "scanRateMs": { "description": "The rate in milliseconds at which data pipelines are scanned for determining data forwarding.", "minimum": 100, "type": "number", "x-ignition-non-secret": false }, "primaryMaintenancePolicy": { "description": "The optional maintenance policy for the primary datastore (memory).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "secondaryMaintenancePolicy": { "description": "The optional maintenance policy for the secondary datastore (disk).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/store-and-forward-engine/{name}/{signature}": { "delete": { "tags": [ "config-store-forward" ], "summary": "Delete Store and Forward Engine", "description": "Delete a Store and Forward Engine resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/system-properties": { "put": { "tags": [ "config-system-properties" ], "summary": "Modify System Properties", "description": "Modify one or more System Properties resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "systemName": { "description": "The name of this Ignition system, used to differentiate this system from others in a larger architecture.\n", "type": "string", "x-ignition-non-secret": false }, "designerRAM": { "default": "MB1024", "description": "Specify the maximum amount of memory that the designer has access to.\n", "type": "string", "enum": [ "MB128", "MB256", "MB512", "MB768", "MB1024", "MB1536", "MB2048", "MB4096" ], "x-ignition-non-secret": false }, "disable3DPipeline": { "default": true, "description": "Disables the Direct3D rendering pipeline launched clients. Direct3D can cause performance problems with XOR painting. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "disableDirectDraw": { "default": false, "description": "Disables the DirectDraw system for launched clients. Can be useful for some video cards that don't support DirectDraw well. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "useCondensedDialogFont": { "default": false, "description": "Designers and Vision Clients will use a condensed version of the \"Dialog\" font for better compatibility with pre-8.0 Vision project design. (affects clients on Windows and Linux only)\n", "type": "boolean", "x-ignition-non-secret": false }, "homepageUrl": { "default": "/app", "description": "The URL this gateway will redirect to when http://ip:port/ is visited. Can either be a relative path (e.g., /app/welcome), or fully qualified (e.g., https://inductiveautomation.com).\n", "type": "string", "x-ignition-non-secret": false }, "homepageNotes": { "default": "Welcome to your Ignition Gateway. This customizable area is intended to capture the critical details you want to document for this Gateway. You might include information about the environment (production, testing, or development), key workflows, or maintenance schedules. It's also a great place to list instructions for your team, important reminders about system health, or details about your configuration that require regular review. Use this space to keep everyone informed and ensure smooth operations across the board.", "description": "A customizable message that is displayed on the Ignition Gateway default homepage.", "type": "string", "x-ignition-non-secret": false }, "clientFallbackEnabled": { "default": false, "description": "Enables a Vision client to fall back to a project in a local Gateway if communication is lost to the central Gateway. Note that port 6501 must be open on the local machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "secondsBeforeFailover": { "default": 60, "description": "The number of seconds to wait before switching to the local Gateway project after comm loss.\n", "type": "number", "x-ignition-non-secret": false }, "fallbackProjectName": { "description": "The local project to use during fallback.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupsEnabled": { "default": false, "description": "Enables the scheduled backup system which will automatically make backups at a scheduled time.\n", "type": "boolean", "x-ignition-non-secret": false }, "scheduledBackupPath": { "description": "A path to a folder in which to put the scheduled backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupTimes": { "default": "15 1 * * *", "description": "A UNIX crontab style scheduling string representing when to make the backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupRetentionCount": { "default": 5, "description": "The number of backups to keep in the backup folder.\n", "type": "number", "x-ignition-non-secret": false }, "scheduledBackupFilename": { "default": "${gatewayName}_Ignition-backup-${edition}${timestamp}.gwbk", "description": "The filename pattern used for creating scheduled and manually downloaded gateway backups.\n", "type": "string", "x-ignition-non-secret": false }, "automaticThreadDumpsEnabled": { "default": false, "description": "Enables automated thread dump generation when CPU utilization exceeds the CPU threshold.\n", "type": "boolean", "x-ignition-non-secret": false }, "automaticThreadDumpsIntervalSeconds": { "default": 60, "description": "Number of seconds between thread dumps when utilization threshold+duration is met.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThreshold": { "default": 70, "description": "CPU Usage Threshold (%) that when exceeded for a given duration (below) will trigger a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThresholdExceededDuration": { "default": 10, "description": "Duration (seconds) during CPU Usage Threshold exceedance to delay a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsRetentionCount": { "default": 50, "description": "The number of thread dumps to keep in the logs folder.\n", "type": "number", "x-ignition-non-secret": false }, "errorReportSMTPServer": { "description": "When not blank, user-reported errors will be emailed using this SMTP server.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportToEmail": { "description": "The email address that the error notification is from.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportFromEmail": { "description": "The email address(es) that will receive the error notification. Separate multiple email addresses with a semicolon (;).\n", "type": "string", "x-ignition-non-secret": false }, "errorReportUsername": { "description": "A username for the SMTP server, if required.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "A password for the SMTP server, if required.\n" }, "multicastEnabled": { "default": true, "description": "Allows this Gateway to be discoverable on your local network.\n", "type": "boolean", "x-ignition-non-secret": false }, "multicastIPAddr": { "default": "231.1.1.1", "description": "Gateway messages will be broadcast on this address.\n", "type": "string", "x-ignition-non-secret": false }, "multicastSendPort": { "default": "4445", "description": "This port must be open on this machine to send multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastReceivePort": { "default": "4446", "description": "This port must be open on any machine that will receive multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastIntervalMillis": { "default": "5000", "description": "The interval in milliseconds at which multicast messages will be sent.\n", "type": "string", "x-ignition-non-secret": false }, "gatewayScriptingProject": { "description": "The name of the Project that gateway-scoped scripts with no project affiliation can access user script libraries in.\n", "type": "string", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "default": true, "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer for 3rd party modules.\n", "type": "boolean", "x-ignition-non-secret": false }, "scriptMessageEncoding": { "default": "Protobuf", "description": "Sets the message encoding format used for script messages (system.util.sendMessage, sendRequest) between\nclient/designer and gateway.\n", "type": "string", "enum": [ "JavaSerialization", "Protobuf" ], "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "systemName": { "description": "The name of this Ignition system, used to differentiate this system from others in a larger architecture.\n", "type": "string", "x-ignition-non-secret": false }, "designerRAM": { "default": "MB1024", "description": "Specify the maximum amount of memory that the designer has access to.\n", "type": "string", "enum": [ "MB128", "MB256", "MB512", "MB768", "MB1024", "MB1536", "MB2048", "MB4096" ], "x-ignition-non-secret": false }, "disable3DPipeline": { "default": true, "description": "Disables the Direct3D rendering pipeline launched clients. Direct3D can cause performance problems with XOR painting. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "disableDirectDraw": { "default": false, "description": "Disables the DirectDraw system for launched clients. Can be useful for some video cards that don't support DirectDraw well. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "useCondensedDialogFont": { "default": false, "description": "Designers and Vision Clients will use a condensed version of the \"Dialog\" font for better compatibility with pre-8.0 Vision project design. (affects clients on Windows and Linux only)\n", "type": "boolean", "x-ignition-non-secret": false }, "homepageUrl": { "default": "/app", "description": "The URL this gateway will redirect to when http://ip:port/ is visited. Can either be a relative path (e.g., /app/welcome), or fully qualified (e.g., https://inductiveautomation.com).\n", "type": "string", "x-ignition-non-secret": false }, "homepageNotes": { "default": "Welcome to your Ignition Gateway. This customizable area is intended to capture the critical details you want to document for this Gateway. You might include information about the environment (production, testing, or development), key workflows, or maintenance schedules. It's also a great place to list instructions for your team, important reminders about system health, or details about your configuration that require regular review. Use this space to keep everyone informed and ensure smooth operations across the board.", "description": "A customizable message that is displayed on the Ignition Gateway default homepage.", "type": "string", "x-ignition-non-secret": false }, "clientFallbackEnabled": { "default": false, "description": "Enables a Vision client to fall back to a project in a local Gateway if communication is lost to the central Gateway. Note that port 6501 must be open on the local machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "secondsBeforeFailover": { "default": 60, "description": "The number of seconds to wait before switching to the local Gateway project after comm loss.\n", "type": "number", "x-ignition-non-secret": false }, "fallbackProjectName": { "description": "The local project to use during fallback.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupsEnabled": { "default": false, "description": "Enables the scheduled backup system which will automatically make backups at a scheduled time.\n", "type": "boolean", "x-ignition-non-secret": false }, "scheduledBackupPath": { "description": "A path to a folder in which to put the scheduled backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupTimes": { "default": "15 1 * * *", "description": "A UNIX crontab style scheduling string representing when to make the backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupRetentionCount": { "default": 5, "description": "The number of backups to keep in the backup folder.\n", "type": "number", "x-ignition-non-secret": false }, "scheduledBackupFilename": { "default": "${gatewayName}_Ignition-backup-${edition}${timestamp}.gwbk", "description": "The filename pattern used for creating scheduled and manually downloaded gateway backups.\n", "type": "string", "x-ignition-non-secret": false }, "automaticThreadDumpsEnabled": { "default": false, "description": "Enables automated thread dump generation when CPU utilization exceeds the CPU threshold.\n", "type": "boolean", "x-ignition-non-secret": false }, "automaticThreadDumpsIntervalSeconds": { "default": 60, "description": "Number of seconds between thread dumps when utilization threshold+duration is met.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThreshold": { "default": 70, "description": "CPU Usage Threshold (%) that when exceeded for a given duration (below) will trigger a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThresholdExceededDuration": { "default": 10, "description": "Duration (seconds) during CPU Usage Threshold exceedance to delay a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsRetentionCount": { "default": 50, "description": "The number of thread dumps to keep in the logs folder.\n", "type": "number", "x-ignition-non-secret": false }, "errorReportSMTPServer": { "description": "When not blank, user-reported errors will be emailed using this SMTP server.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportToEmail": { "description": "The email address that the error notification is from.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportFromEmail": { "description": "The email address(es) that will receive the error notification. Separate multiple email addresses with a semicolon (;).\n", "type": "string", "x-ignition-non-secret": false }, "errorReportUsername": { "description": "A username for the SMTP server, if required.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "A password for the SMTP server, if required.\n" }, "multicastEnabled": { "default": true, "description": "Allows this Gateway to be discoverable on your local network.\n", "type": "boolean", "x-ignition-non-secret": false }, "multicastIPAddr": { "default": "231.1.1.1", "description": "Gateway messages will be broadcast on this address.\n", "type": "string", "x-ignition-non-secret": false }, "multicastSendPort": { "default": "4445", "description": "This port must be open on this machine to send multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastReceivePort": { "default": "4446", "description": "This port must be open on any machine that will receive multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastIntervalMillis": { "default": "5000", "description": "The interval in milliseconds at which multicast messages will be sent.\n", "type": "string", "x-ignition-non-secret": false }, "gatewayScriptingProject": { "description": "The name of the Project that gateway-scoped scripts with no project affiliation can access user script libraries in.\n", "type": "string", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "default": true, "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer for 3rd party modules.\n", "type": "boolean", "x-ignition-non-secret": false }, "scriptMessageEncoding": { "default": "Protobuf", "description": "Sets the message encoding format used for script messages (system.util.sendMessage, sendRequest) between\nclient/designer and gateway.\n", "type": "string", "enum": [ "JavaSerialization", "Protobuf" ], "x-ignition-non-secret": false } } } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-system-properties" ], "summary": "Create System Properties", "description": "Create the System Properties resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "systemName": { "description": "The name of this Ignition system, used to differentiate this system from others in a larger architecture.\n", "type": "string", "x-ignition-non-secret": false }, "designerRAM": { "default": "MB1024", "description": "Specify the maximum amount of memory that the designer has access to.\n", "type": "string", "enum": [ "MB128", "MB256", "MB512", "MB768", "MB1024", "MB1536", "MB2048", "MB4096" ], "x-ignition-non-secret": false }, "disable3DPipeline": { "default": true, "description": "Disables the Direct3D rendering pipeline launched clients. Direct3D can cause performance problems with XOR painting. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "disableDirectDraw": { "default": false, "description": "Disables the DirectDraw system for launched clients. Can be useful for some video cards that don't support DirectDraw well. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "useCondensedDialogFont": { "default": false, "description": "Designers and Vision Clients will use a condensed version of the \"Dialog\" font for better compatibility with pre-8.0 Vision project design. (affects clients on Windows and Linux only)\n", "type": "boolean", "x-ignition-non-secret": false }, "homepageUrl": { "default": "/app", "description": "The URL this gateway will redirect to when http://ip:port/ is visited. Can either be a relative path (e.g., /app/welcome), or fully qualified (e.g., https://inductiveautomation.com).\n", "type": "string", "x-ignition-non-secret": false }, "homepageNotes": { "default": "Welcome to your Ignition Gateway. This customizable area is intended to capture the critical details you want to document for this Gateway. You might include information about the environment (production, testing, or development), key workflows, or maintenance schedules. It's also a great place to list instructions for your team, important reminders about system health, or details about your configuration that require regular review. Use this space to keep everyone informed and ensure smooth operations across the board.", "description": "A customizable message that is displayed on the Ignition Gateway default homepage.", "type": "string", "x-ignition-non-secret": false }, "clientFallbackEnabled": { "default": false, "description": "Enables a Vision client to fall back to a project in a local Gateway if communication is lost to the central Gateway. Note that port 6501 must be open on the local machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "secondsBeforeFailover": { "default": 60, "description": "The number of seconds to wait before switching to the local Gateway project after comm loss.\n", "type": "number", "x-ignition-non-secret": false }, "fallbackProjectName": { "description": "The local project to use during fallback.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupsEnabled": { "default": false, "description": "Enables the scheduled backup system which will automatically make backups at a scheduled time.\n", "type": "boolean", "x-ignition-non-secret": false }, "scheduledBackupPath": { "description": "A path to a folder in which to put the scheduled backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupTimes": { "default": "15 1 * * *", "description": "A UNIX crontab style scheduling string representing when to make the backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupRetentionCount": { "default": 5, "description": "The number of backups to keep in the backup folder.\n", "type": "number", "x-ignition-non-secret": false }, "scheduledBackupFilename": { "default": "${gatewayName}_Ignition-backup-${edition}${timestamp}.gwbk", "description": "The filename pattern used for creating scheduled and manually downloaded gateway backups.\n", "type": "string", "x-ignition-non-secret": false }, "automaticThreadDumpsEnabled": { "default": false, "description": "Enables automated thread dump generation when CPU utilization exceeds the CPU threshold.\n", "type": "boolean", "x-ignition-non-secret": false }, "automaticThreadDumpsIntervalSeconds": { "default": 60, "description": "Number of seconds between thread dumps when utilization threshold+duration is met.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThreshold": { "default": 70, "description": "CPU Usage Threshold (%) that when exceeded for a given duration (below) will trigger a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThresholdExceededDuration": { "default": 10, "description": "Duration (seconds) during CPU Usage Threshold exceedance to delay a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsRetentionCount": { "default": 50, "description": "The number of thread dumps to keep in the logs folder.\n", "type": "number", "x-ignition-non-secret": false }, "errorReportSMTPServer": { "description": "When not blank, user-reported errors will be emailed using this SMTP server.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportToEmail": { "description": "The email address that the error notification is from.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportFromEmail": { "description": "The email address(es) that will receive the error notification. Separate multiple email addresses with a semicolon (;).\n", "type": "string", "x-ignition-non-secret": false }, "errorReportUsername": { "description": "A username for the SMTP server, if required.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "A password for the SMTP server, if required.\n" }, "multicastEnabled": { "default": true, "description": "Allows this Gateway to be discoverable on your local network.\n", "type": "boolean", "x-ignition-non-secret": false }, "multicastIPAddr": { "default": "231.1.1.1", "description": "Gateway messages will be broadcast on this address.\n", "type": "string", "x-ignition-non-secret": false }, "multicastSendPort": { "default": "4445", "description": "This port must be open on this machine to send multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastReceivePort": { "default": "4446", "description": "This port must be open on any machine that will receive multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastIntervalMillis": { "default": "5000", "description": "The interval in milliseconds at which multicast messages will be sent.\n", "type": "string", "x-ignition-non-secret": false }, "gatewayScriptingProject": { "description": "The name of the Project that gateway-scoped scripts with no project affiliation can access user script libraries in.\n", "type": "string", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "default": true, "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer for 3rd party modules.\n", "type": "boolean", "x-ignition-non-secret": false }, "scriptMessageEncoding": { "default": "Protobuf", "description": "Sets the message encoding format used for script messages (system.util.sendMessage, sendRequest) between\nclient/designer and gateway.\n", "type": "string", "enum": [ "JavaSerialization", "Protobuf" ], "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "systemName": { "description": "The name of this Ignition system, used to differentiate this system from others in a larger architecture.\n", "type": "string", "x-ignition-non-secret": false }, "designerRAM": { "default": "MB1024", "description": "Specify the maximum amount of memory that the designer has access to.\n", "type": "string", "enum": [ "MB128", "MB256", "MB512", "MB768", "MB1024", "MB1536", "MB2048", "MB4096" ], "x-ignition-non-secret": false }, "disable3DPipeline": { "default": true, "description": "Disables the Direct3D rendering pipeline launched clients. Direct3D can cause performance problems with XOR painting. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "disableDirectDraw": { "default": false, "description": "Disables the DirectDraw system for launched clients. Can be useful for some video cards that don't support DirectDraw well. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "useCondensedDialogFont": { "default": false, "description": "Designers and Vision Clients will use a condensed version of the \"Dialog\" font for better compatibility with pre-8.0 Vision project design. (affects clients on Windows and Linux only)\n", "type": "boolean", "x-ignition-non-secret": false }, "homepageUrl": { "default": "/app", "description": "The URL this gateway will redirect to when http://ip:port/ is visited. Can either be a relative path (e.g., /app/welcome), or fully qualified (e.g., https://inductiveautomation.com).\n", "type": "string", "x-ignition-non-secret": false }, "homepageNotes": { "default": "Welcome to your Ignition Gateway. This customizable area is intended to capture the critical details you want to document for this Gateway. You might include information about the environment (production, testing, or development), key workflows, or maintenance schedules. It's also a great place to list instructions for your team, important reminders about system health, or details about your configuration that require regular review. Use this space to keep everyone informed and ensure smooth operations across the board.", "description": "A customizable message that is displayed on the Ignition Gateway default homepage.", "type": "string", "x-ignition-non-secret": false }, "clientFallbackEnabled": { "default": false, "description": "Enables a Vision client to fall back to a project in a local Gateway if communication is lost to the central Gateway. Note that port 6501 must be open on the local machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "secondsBeforeFailover": { "default": 60, "description": "The number of seconds to wait before switching to the local Gateway project after comm loss.\n", "type": "number", "x-ignition-non-secret": false }, "fallbackProjectName": { "description": "The local project to use during fallback.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupsEnabled": { "default": false, "description": "Enables the scheduled backup system which will automatically make backups at a scheduled time.\n", "type": "boolean", "x-ignition-non-secret": false }, "scheduledBackupPath": { "description": "A path to a folder in which to put the scheduled backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupTimes": { "default": "15 1 * * *", "description": "A UNIX crontab style scheduling string representing when to make the backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupRetentionCount": { "default": 5, "description": "The number of backups to keep in the backup folder.\n", "type": "number", "x-ignition-non-secret": false }, "scheduledBackupFilename": { "default": "${gatewayName}_Ignition-backup-${edition}${timestamp}.gwbk", "description": "The filename pattern used for creating scheduled and manually downloaded gateway backups.\n", "type": "string", "x-ignition-non-secret": false }, "automaticThreadDumpsEnabled": { "default": false, "description": "Enables automated thread dump generation when CPU utilization exceeds the CPU threshold.\n", "type": "boolean", "x-ignition-non-secret": false }, "automaticThreadDumpsIntervalSeconds": { "default": 60, "description": "Number of seconds between thread dumps when utilization threshold+duration is met.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThreshold": { "default": 70, "description": "CPU Usage Threshold (%) that when exceeded for a given duration (below) will trigger a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThresholdExceededDuration": { "default": 10, "description": "Duration (seconds) during CPU Usage Threshold exceedance to delay a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsRetentionCount": { "default": 50, "description": "The number of thread dumps to keep in the logs folder.\n", "type": "number", "x-ignition-non-secret": false }, "errorReportSMTPServer": { "description": "When not blank, user-reported errors will be emailed using this SMTP server.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportToEmail": { "description": "The email address that the error notification is from.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportFromEmail": { "description": "The email address(es) that will receive the error notification. Separate multiple email addresses with a semicolon (;).\n", "type": "string", "x-ignition-non-secret": false }, "errorReportUsername": { "description": "A username for the SMTP server, if required.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "A password for the SMTP server, if required.\n" }, "multicastEnabled": { "default": true, "description": "Allows this Gateway to be discoverable on your local network.\n", "type": "boolean", "x-ignition-non-secret": false }, "multicastIPAddr": { "default": "231.1.1.1", "description": "Gateway messages will be broadcast on this address.\n", "type": "string", "x-ignition-non-secret": false }, "multicastSendPort": { "default": "4445", "description": "This port must be open on this machine to send multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastReceivePort": { "default": "4446", "description": "This port must be open on any machine that will receive multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastIntervalMillis": { "default": "5000", "description": "The interval in milliseconds at which multicast messages will be sent.\n", "type": "string", "x-ignition-non-secret": false }, "gatewayScriptingProject": { "description": "The name of the Project that gateway-scoped scripts with no project affiliation can access user script libraries in.\n", "type": "string", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "default": true, "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer for 3rd party modules.\n", "type": "boolean", "x-ignition-non-secret": false }, "scriptMessageEncoding": { "default": "Protobuf", "description": "Sets the message encoding format used for script messages (system.util.sendMessage, sendRequest) between\nclient/designer and gateway.\n", "type": "string", "enum": [ "JavaSerialization", "Protobuf" ], "x-ignition-non-secret": false } } } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/system-properties/{signature}": { "delete": { "tags": [ "config-system-properties" ], "summary": "Delete System Properties", "description": "Delete the System Properties resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/tag-provider": { "put": { "tags": [ "config-tag-provider" ], "summary": "Modify Tag Providers", "description": "Modify one or more Tag Providers resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "MANAGED", "REMOTE", "STANDARD" ] }, "allowBackfill": { "description": "If **true**, data will be allowed to arrive out of order from the source. Data from the past will be stored to history, but will not be used for alarms, scripts, or subscriptions. If **false**, each value will be processed fully as it arrives.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/tag-provider/MANAGED", "title": "MANAGED", "type": "object", "properties": { "nonUseCount": { "description": "The number of times the provider has not been used", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/REMOTE", "title": "REMOTE", "type": "object", "properties": { "serverName": { "description": "Gateway to target", "type": "string", "x-ignition-non-secret": false }, "remoteProviderName": { "description": "Remote tag provider name", "type": "string", "x-ignition-non-secret": false }, "historyMode": { "description": "Dictates how history is queried for remote Tags.**GatewayNetwork**, history requests will go through the Gateway Network.**Database** history requests will run against the database directly.", "default": "GatewayNetwork", "type": "string", "enum": [ "GatewayNetwork", "Database" ], "x-ignition-non-secret": false }, "historyDatasourceName": { "description": "Datasource name to query when History Access Mode is set to Database.", "type": "string", "x-ignition-non-secret": false }, "historyDriverName": { "description": "If querying the database directly, this is the Gateway name of the remote system.", "type": "string", "x-ignition-non-secret": false }, "historyProviderName": { "description": "If querying the database directly, this is the name of the Tag provider on the remote system.", "type": "string", "x-ignition-non-secret": false }, "alarmStatusEnabled": { "description": "If **true**, alarms configured on the remote Gateway will be enabled on the new Gateway", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "alarmMode": { "description": "How alarm state should be monitored. In **Queried**, state will be queried through the Gateway network when necessary. In **Subscribed**, the state will be subscribed, and updates will be sent asynchronously.", "default": "Queried", "type": "string", "enum": [ "Queried", "Subscribed" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/STANDARD", "title": "STANDARD", "type": "object", "properties": { "defaultDatasourceName": { "type": "string", "x-ignition-non-secret": false }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to read any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "readOnly": { "description": "If **true**, writes to any tag within this tag provider will be rejected.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to write to any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "editPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to edit any tag within this tag provider must have these permissions." }, "valuePersistence": { "description": "If and how memory tag values are persisted. **Database** persists any writes to values in a database. **Configuration** persists writes to values in the config file on the file system. **None** prevents any writes from persisting; on provider restart the value is pulled from the config.", "default": "Database", "type": "string", "enum": [ "None", "Database", "Configuration" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "MANAGED", "REMOTE", "STANDARD" ] }, "allowBackfill": { "description": "If **true**, data will be allowed to arrive out of order from the source. Data from the past will be stored to history, but will not be used for alarms, scripts, or subscriptions. If **false**, each value will be processed fully as it arrives.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/tag-provider/MANAGED", "title": "MANAGED", "type": "object", "properties": { "nonUseCount": { "description": "The number of times the provider has not been used", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/REMOTE", "title": "REMOTE", "type": "object", "properties": { "serverName": { "description": "Gateway to target", "type": "string", "x-ignition-non-secret": false }, "remoteProviderName": { "description": "Remote tag provider name", "type": "string", "x-ignition-non-secret": false }, "historyMode": { "description": "Dictates how history is queried for remote Tags.**GatewayNetwork**, history requests will go through the Gateway Network.**Database** history requests will run against the database directly.", "default": "GatewayNetwork", "type": "string", "enum": [ "GatewayNetwork", "Database" ], "x-ignition-non-secret": false }, "historyDatasourceName": { "description": "Datasource name to query when History Access Mode is set to Database.", "type": "string", "x-ignition-non-secret": false }, "historyDriverName": { "description": "If querying the database directly, this is the Gateway name of the remote system.", "type": "string", "x-ignition-non-secret": false }, "historyProviderName": { "description": "If querying the database directly, this is the name of the Tag provider on the remote system.", "type": "string", "x-ignition-non-secret": false }, "alarmStatusEnabled": { "description": "If **true**, alarms configured on the remote Gateway will be enabled on the new Gateway", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "alarmMode": { "description": "How alarm state should be monitored. In **Queried**, state will be queried through the Gateway network when necessary. In **Subscribed**, the state will be subscribed, and updates will be sent asynchronously.", "default": "Queried", "type": "string", "enum": [ "Queried", "Subscribed" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/STANDARD", "title": "STANDARD", "type": "object", "properties": { "defaultDatasourceName": { "type": "string", "x-ignition-non-secret": false }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to read any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "readOnly": { "description": "If **true**, writes to any tag within this tag provider will be rejected.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to write to any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "editPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to edit any tag within this tag provider must have these permissions." }, "valuePersistence": { "description": "If and how memory tag values are persisted. **Database** persists any writes to values in a database. **Configuration** persists writes to values in the config file on the file system. **None** prevents any writes from persisting; on provider restart the value is pulled from the config.", "default": "Database", "type": "string", "enum": [ "None", "Database", "Configuration" ], "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-tag-provider" ], "summary": "Create Tag Providers", "description": "Create a new Tag Providers resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "MANAGED", "REMOTE", "STANDARD" ] }, "allowBackfill": { "description": "If **true**, data will be allowed to arrive out of order from the source. Data from the past will be stored to history, but will not be used for alarms, scripts, or subscriptions. If **false**, each value will be processed fully as it arrives.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/tag-provider/MANAGED", "title": "MANAGED", "type": "object", "properties": { "nonUseCount": { "description": "The number of times the provider has not been used", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/REMOTE", "title": "REMOTE", "type": "object", "properties": { "serverName": { "description": "Gateway to target", "type": "string", "x-ignition-non-secret": false }, "remoteProviderName": { "description": "Remote tag provider name", "type": "string", "x-ignition-non-secret": false }, "historyMode": { "description": "Dictates how history is queried for remote Tags.**GatewayNetwork**, history requests will go through the Gateway Network.**Database** history requests will run against the database directly.", "default": "GatewayNetwork", "type": "string", "enum": [ "GatewayNetwork", "Database" ], "x-ignition-non-secret": false }, "historyDatasourceName": { "description": "Datasource name to query when History Access Mode is set to Database.", "type": "string", "x-ignition-non-secret": false }, "historyDriverName": { "description": "If querying the database directly, this is the Gateway name of the remote system.", "type": "string", "x-ignition-non-secret": false }, "historyProviderName": { "description": "If querying the database directly, this is the name of the Tag provider on the remote system.", "type": "string", "x-ignition-non-secret": false }, "alarmStatusEnabled": { "description": "If **true**, alarms configured on the remote Gateway will be enabled on the new Gateway", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "alarmMode": { "description": "How alarm state should be monitored. In **Queried**, state will be queried through the Gateway network when necessary. In **Subscribed**, the state will be subscribed, and updates will be sent asynchronously.", "default": "Queried", "type": "string", "enum": [ "Queried", "Subscribed" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/STANDARD", "title": "STANDARD", "type": "object", "properties": { "defaultDatasourceName": { "type": "string", "x-ignition-non-secret": false }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to read any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "readOnly": { "description": "If **true**, writes to any tag within this tag provider will be rejected.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to write to any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "editPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to edit any tag within this tag provider must have these permissions." }, "valuePersistence": { "description": "If and how memory tag values are persisted. **Database** persists any writes to values in a database. **Configuration** persists writes to values in the config file on the file system. **None** prevents any writes from persisting; on provider restart the value is pulled from the config.", "default": "Database", "type": "string", "enum": [ "None", "Database", "Configuration" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "MANAGED", "REMOTE", "STANDARD" ] }, "allowBackfill": { "description": "If **true**, data will be allowed to arrive out of order from the source. Data from the past will be stored to history, but will not be used for alarms, scripts, or subscriptions. If **false**, each value will be processed fully as it arrives.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/tag-provider/MANAGED", "title": "MANAGED", "type": "object", "properties": { "nonUseCount": { "description": "The number of times the provider has not been used", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/REMOTE", "title": "REMOTE", "type": "object", "properties": { "serverName": { "description": "Gateway to target", "type": "string", "x-ignition-non-secret": false }, "remoteProviderName": { "description": "Remote tag provider name", "type": "string", "x-ignition-non-secret": false }, "historyMode": { "description": "Dictates how history is queried for remote Tags.**GatewayNetwork**, history requests will go through the Gateway Network.**Database** history requests will run against the database directly.", "default": "GatewayNetwork", "type": "string", "enum": [ "GatewayNetwork", "Database" ], "x-ignition-non-secret": false }, "historyDatasourceName": { "description": "Datasource name to query when History Access Mode is set to Database.", "type": "string", "x-ignition-non-secret": false }, "historyDriverName": { "description": "If querying the database directly, this is the Gateway name of the remote system.", "type": "string", "x-ignition-non-secret": false }, "historyProviderName": { "description": "If querying the database directly, this is the name of the Tag provider on the remote system.", "type": "string", "x-ignition-non-secret": false }, "alarmStatusEnabled": { "description": "If **true**, alarms configured on the remote Gateway will be enabled on the new Gateway", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "alarmMode": { "description": "How alarm state should be monitored. In **Queried**, state will be queried through the Gateway network when necessary. In **Subscribed**, the state will be subscribed, and updates will be sent asynchronously.", "default": "Queried", "type": "string", "enum": [ "Queried", "Subscribed" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/STANDARD", "title": "STANDARD", "type": "object", "properties": { "defaultDatasourceName": { "type": "string", "x-ignition-non-secret": false }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to read any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "readOnly": { "description": "If **true**, writes to any tag within this tag provider will be rejected.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to write to any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "editPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to edit any tag within this tag provider must have these permissions." }, "valuePersistence": { "description": "If and how memory tag values are persisted. **Database** persists any writes to values in a database. **Configuration** persists writes to values in the config file on the file system. **None** prevents any writes from persisting; on provider restart the value is pulled from the config.", "default": "Database", "type": "string", "enum": [ "None", "Database", "Configuration" ], "x-ignition-non-secret": false } } } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/tag-provider/{name}/{signature}": { "delete": { "tags": [ "config-tag-provider" ], "summary": "Delete Tag Providers", "description": "Delete a Tag Providers resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/translations": { "put": { "tags": [ "config-translations" ], "summary": "Modify Translations", "description": "Modify one or more Translations resources", "parameters": [], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "caseInsensitive": { "description": "Whether to ignore case differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreWhitespace": { "description": "Whether to ignore whitespace differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignorePunctuation": { "description": "Whether to ignore punctuation differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreTags": { "description": "Whether to ignore HTML tags in terms", "type": "boolean", "x-ignition-non-secret": false }, "terms": { "type": "object", "description": "A map of locales to term translations", "examples": [ { "en-US": { "hello": "hello", "world": "world" }, "es-MX": { "hello": "hola", "world": "mundo" } } ], "additionalProperties": { "type": "object", "description": "A map of terms to translations", "additionalProperties": { "type": "string", "description": "The translation for the term", "examples": [ "Hello" ] } } } }, "required": [ "caseInsensitive", "ignoreWhitespace", "ignorePunctuation", "ignoreTags" ], "description": "The Gateway's defined translation terms and settings" }, "backupConfig": { "type": "object", "properties": { "caseInsensitive": { "description": "Whether to ignore case differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreWhitespace": { "description": "Whether to ignore whitespace differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignorePunctuation": { "description": "Whether to ignore punctuation differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreTags": { "description": "Whether to ignore HTML tags in terms", "type": "boolean", "x-ignition-non-secret": false }, "terms": { "type": "object", "description": "A map of locales to term translations", "examples": [ { "en-US": { "hello": "hello", "world": "world" }, "es-MX": { "hello": "hola", "world": "mundo" } } ], "additionalProperties": { "type": "object", "description": "A map of terms to translations", "additionalProperties": { "type": "string", "description": "The translation for the term", "examples": [ "Hello" ] } } } }, "required": [ "caseInsensitive", "ignoreWhitespace", "ignorePunctuation", "ignoreTags" ], "description": "The Gateway's defined translation terms and settings" } }, "required": [ "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-translations" ], "summary": "Create Translations", "description": "Create the Translations resource", "parameters": [], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "type": "object", "properties": { "caseInsensitive": { "description": "Whether to ignore case differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreWhitespace": { "description": "Whether to ignore whitespace differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignorePunctuation": { "description": "Whether to ignore punctuation differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreTags": { "description": "Whether to ignore HTML tags in terms", "type": "boolean", "x-ignition-non-secret": false }, "terms": { "type": "object", "description": "A map of locales to term translations", "examples": [ { "en-US": { "hello": "hello", "world": "world" }, "es-MX": { "hello": "hola", "world": "mundo" } } ], "additionalProperties": { "type": "object", "description": "A map of terms to translations", "additionalProperties": { "type": "string", "description": "The translation for the term", "examples": [ "Hello" ] } } } }, "required": [ "caseInsensitive", "ignoreWhitespace", "ignorePunctuation", "ignoreTags" ], "description": "The Gateway's defined translation terms and settings" }, "backupConfig": { "type": "object", "properties": { "caseInsensitive": { "description": "Whether to ignore case differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreWhitespace": { "description": "Whether to ignore whitespace differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignorePunctuation": { "description": "Whether to ignore punctuation differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreTags": { "description": "Whether to ignore HTML tags in terms", "type": "boolean", "x-ignition-non-secret": false }, "terms": { "type": "object", "description": "A map of locales to term translations", "examples": [ { "en-US": { "hello": "hello", "world": "world" }, "es-MX": { "hello": "hola", "world": "mundo" } } ], "additionalProperties": { "type": "object", "description": "A map of terms to translations", "additionalProperties": { "type": "string", "description": "The translation for the term", "examples": [ "Hello" ] } } } }, "required": [ "caseInsensitive", "ignoreWhitespace", "ignorePunctuation", "ignoreTags" ], "description": "The Gateway's defined translation terms and settings" } } } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/translations/{signature}": { "delete": { "tags": [ "config-translations" ], "summary": "Delete Translations", "description": "Delete the Translations resource.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Missing 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/user-source": { "put": { "tags": [ "config-user-source" ], "summary": "Modify User Sources", "description": "Modify one or more User Sources resources", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to modify", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The config collection to modify the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource should be enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "ADEASY", "ADHYBRID", "AD_DB_HYBRID", "DATASOURCE", "FALLBK_CACHE", "INTERNAL" ] }, "scheduleRestricted": { "description": "Users are only able to log in when their assigned schedule is active.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Schedule Restricted" }, "type": "boolean", "x-ignition-non-secret": false }, "failoverProfile": { "description": "If this source is unreachable for authentication, this failover source will be used instead.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Failover Profile", "referenceType": "ignition/user-source" }, "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "description": "The failover mode to use if a failover source is set. Hard - failover only if this source is unreachable. Soft - try the failover source when a user fails to authenticate with this source.", "default": "HARD", "x-form": { "fieldType": "SELECT", "category": "GENERAL", "label": "Failover Mode" }, "type": "string", "enum": [ "HARD", "SOFT" ], "x-ignition-non-secret": false }, "cacheValidationTimeout": { "description": "The amount of time in minutes between cache updates of the user source. Values less than one disable the cache.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Cache Validation Timeout" }, "type": "number", "x-ignition-non-secret": false }, "lockoutEnabled": { "description": "Lock out a user's account after more than the maximum allowed number of failed authentication attempts occur within the lockout window", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Lockout Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "lockoutAttempts": { "description": "Maximum number of failed authentication attempts allowed within the lockout window before locking the user out. Values less than one disables lockout.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Attempts" }, "type": "number", "x-ignition-non-secret": false }, "lockoutWindow": { "description": "The duration of the lockout window in minutes. Values less than one disables lockout.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Window" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/user-source/ADEASY", "title": "ADEASY", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userSearchBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User Search Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userRoleAttribute": { "description": "Attributes of this name on the User object will define the user's roles.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "nestedGroups": { "description": "If this option is checked, nested group membership lookups will be performed.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "groupRoleAttribute": { "description": "Attributes of this name on the Group object will define the group's roles. This setting is only applicable when nested group membership is enabled.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "roleNameAttribute": { "description": "The attribute of this name on the Role object will define the role's name. Leave blank to use the raw value of the attribute defined by User Role Attribute.", "default": "cn", "type": "string", "x-ignition-non-secret": false }, "roleIdAttribute": { "description": "The attribute of this name on the Role object will define the role's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "badgeAttribute": { "description": "The attribute on the User object to define the badge. This setting is required to enable badge-based authentication.", "type": "string", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "roleSearchBase": { "description": "The base folder to search for roles under, such as \"OU=Roles,DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the Role Search Filter. If you specify the root of your tree structure, the search may take a very long time. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Builtin,DC=MyCompany,DC=com)(OU=Users,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "roleSearchFilter": { "description": "The LDAP search filter to use to locate roles.", "default": "(objectClass=group)", "type": "string", "x-ignition-non-secret": false }, "badgeSearchFilter": { "description": "The LDAP search filter to use to find a specific user given a badge. Use the placeholder {0} as a standin for the user's badge. Example: (&(objectClass=user)(badge={0}))", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ] }, { "$id": "ignition/user-source/ADHYBRID", "title": "ADHYBRID", "type": "object", "properties": { "ldap": { "description": "LDAP settings", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations.", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-int-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, users must be added manually.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "populateUsersOnDemand": { "description": "If true, a user record will be created in the Internal user source from the AD entry of any user who successfully authenticates into AD if the record does not already exist in the Internal user source at the time of authentication.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "ldap" ] }, { "$id": "ignition/user-source/AD_DB_HYBRID", "title": "AD_DB_HYBRID", "type": "object", "properties": { "database": { "description": "Database settings", "type": "object", "properties": { "datasource": { "description": "The database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username.<br/>Example: <tt>SELECT username FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value, and the third column the name of a schedule. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value, schedule FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. Only used if \"List Users from Active Directory\" is false. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "userPropsQuery": { "description": "A query that returns the basic properties for a single user. Only used if \"List Users from Active Directory\" is true. Supported return columns are [firstname, lastname, schedule, language, notes, badge]. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT firstname, lastname, schedule, language, notes, badge FROM user_table WHERE username = ?</tt> ", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. Only used if \"List Users from Active Directory\" is false. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings (i.e. the role names), and must be in the first column of the query's results. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT rolename FROM user_role_mapping WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false } }, "required": [ "datasource" ], "x-ignition-non-secret": false }, "ldap": { "description": "LDAP settings", "type": "object", "properties": { "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users via LDAP.", "type": "string", "x-ignition-non-secret": false }, "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-db-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1", "port1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, the database will be queried instead.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "database", "ldap" ] }, { "$id": "ignition/user-source/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Choose the database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "mode": { "description": "In Automatic mode, tables will be created for you and all interaction with the database is handled automatically. In Manual mode, you write queries by hand against tables that you've created. Management of users (adding, removing etc) is not supported in manual mode.", "default": "Automatic", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "authQuery": { "description": "A query that must return a row if the given username and password combination provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent username first and then password. The returned row may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT useruuid, firstname, lastname, schedule FROM USERS WHERE username = ? AND password = MD5(?)</tt>", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username and may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings and must be in the first column of the query's results. The query will be run as a prepared statement with one parameter: the username.<br/>Example: <tt>SELECT rolename FROM mapping_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule, FROM USERS WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt> ", "type": "string", "x-ignition-non-secret": false }, "tableNamePrefix": { "description": "When in automatic mode, tables will be created to store the users and roles. They will have this prefix.", "default": "scada_", "type": "string", "x-ignition-non-secret": false }, "enableUuids": { "description": "When in automatic mode, UUIDs will be generated for user and role IDs.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/user-source/FALLBK_CACHE", "title": "FALLBK_CACHE", "type": "object", "properties": { "cacheRetention": { "description": "Number of days that the cache will retain recently used credentials.", "default": 15, "minimum": 1, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/user-source/INTERNAL", "title": "INTERNAL", "type": "object", "properties": { "passwordMaxAge": { "description": "The maximum age (in days) that a password is valid for. A value of zero disables password expiration.", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": true }, "passwordMinLength": { "description": "Passwords must be at least this many characters long.", "default": 8, "minimum": 1, "maximum": 20, "type": "number", "x-ignition-non-secret": true }, "passwordComplexity": { "description": "The number of character types (lowercase letters, uppercase letters, digits, punctuation) each password must contain. For example, a value of 3 means passwords must have 3 of the 4 character types to be considered valid.", "default": 3, "minimum": 1, "maximum": 4, "type": "number", "x-ignition-non-secret": true }, "passwordHistory": { "description": "The number of previous passwords to store. Passwords in the history list may not be re-used. A value of zero disables this feature.", "default": 0, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true }, "passwordContainsPassword": { "description": "If enabled, passwords may not contain any form of the word \"password\". This includes: password, pass, word, pwd, passwd and pword.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordContainsUserName": { "description": "If enabled, passwords may not contain any form of the username.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordMaxRepeatedChars": { "description": "The maximum number of consecutive repeated characters allowed in a password. Set to 0 to disable.", "default": 3, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "ADEASY", "ADHYBRID", "AD_DB_HYBRID", "DATASOURCE", "FALLBK_CACHE", "INTERNAL" ] }, "scheduleRestricted": { "description": "Users are only able to log in when their assigned schedule is active.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Schedule Restricted" }, "type": "boolean", "x-ignition-non-secret": false }, "failoverProfile": { "description": "If this source is unreachable for authentication, this failover source will be used instead.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Failover Profile", "referenceType": "ignition/user-source" }, "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "description": "The failover mode to use if a failover source is set. Hard - failover only if this source is unreachable. Soft - try the failover source when a user fails to authenticate with this source.", "default": "HARD", "x-form": { "fieldType": "SELECT", "category": "GENERAL", "label": "Failover Mode" }, "type": "string", "enum": [ "HARD", "SOFT" ], "x-ignition-non-secret": false }, "cacheValidationTimeout": { "description": "The amount of time in minutes between cache updates of the user source. Values less than one disable the cache.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Cache Validation Timeout" }, "type": "number", "x-ignition-non-secret": false }, "lockoutEnabled": { "description": "Lock out a user's account after more than the maximum allowed number of failed authentication attempts occur within the lockout window", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Lockout Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "lockoutAttempts": { "description": "Maximum number of failed authentication attempts allowed within the lockout window before locking the user out. Values less than one disables lockout.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Attempts" }, "type": "number", "x-ignition-non-secret": false }, "lockoutWindow": { "description": "The duration of the lockout window in minutes. Values less than one disables lockout.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Window" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/user-source/ADEASY", "title": "ADEASY", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userSearchBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User Search Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userRoleAttribute": { "description": "Attributes of this name on the User object will define the user's roles.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "nestedGroups": { "description": "If this option is checked, nested group membership lookups will be performed.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "groupRoleAttribute": { "description": "Attributes of this name on the Group object will define the group's roles. This setting is only applicable when nested group membership is enabled.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "roleNameAttribute": { "description": "The attribute of this name on the Role object will define the role's name. Leave blank to use the raw value of the attribute defined by User Role Attribute.", "default": "cn", "type": "string", "x-ignition-non-secret": false }, "roleIdAttribute": { "description": "The attribute of this name on the Role object will define the role's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "badgeAttribute": { "description": "The attribute on the User object to define the badge. This setting is required to enable badge-based authentication.", "type": "string", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "roleSearchBase": { "description": "The base folder to search for roles under, such as \"OU=Roles,DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the Role Search Filter. If you specify the root of your tree structure, the search may take a very long time. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Builtin,DC=MyCompany,DC=com)(OU=Users,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "roleSearchFilter": { "description": "The LDAP search filter to use to locate roles.", "default": "(objectClass=group)", "type": "string", "x-ignition-non-secret": false }, "badgeSearchFilter": { "description": "The LDAP search filter to use to find a specific user given a badge. Use the placeholder {0} as a standin for the user's badge. Example: (&(objectClass=user)(badge={0}))", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ] }, { "$id": "ignition/user-source/ADHYBRID", "title": "ADHYBRID", "type": "object", "properties": { "ldap": { "description": "LDAP settings", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations.", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-int-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, users must be added manually.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "populateUsersOnDemand": { "description": "If true, a user record will be created in the Internal user source from the AD entry of any user who successfully authenticates into AD if the record does not already exist in the Internal user source at the time of authentication.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "ldap" ] }, { "$id": "ignition/user-source/AD_DB_HYBRID", "title": "AD_DB_HYBRID", "type": "object", "properties": { "database": { "description": "Database settings", "type": "object", "properties": { "datasource": { "description": "The database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username.<br/>Example: <tt>SELECT username FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value, and the third column the name of a schedule. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value, schedule FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. Only used if \"List Users from Active Directory\" is false. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "userPropsQuery": { "description": "A query that returns the basic properties for a single user. Only used if \"List Users from Active Directory\" is true. Supported return columns are [firstname, lastname, schedule, language, notes, badge]. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT firstname, lastname, schedule, language, notes, badge FROM user_table WHERE username = ?</tt> ", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. Only used if \"List Users from Active Directory\" is false. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings (i.e. the role names), and must be in the first column of the query's results. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT rolename FROM user_role_mapping WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false } }, "required": [ "datasource" ], "x-ignition-non-secret": false }, "ldap": { "description": "LDAP settings", "type": "object", "properties": { "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users via LDAP.", "type": "string", "x-ignition-non-secret": false }, "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-db-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1", "port1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, the database will be queried instead.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "database", "ldap" ] }, { "$id": "ignition/user-source/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Choose the database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "mode": { "description": "In Automatic mode, tables will be created for you and all interaction with the database is handled automatically. In Manual mode, you write queries by hand against tables that you've created. Management of users (adding, removing etc) is not supported in manual mode.", "default": "Automatic", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "authQuery": { "description": "A query that must return a row if the given username and password combination provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent username first and then password. The returned row may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT useruuid, firstname, lastname, schedule FROM USERS WHERE username = ? AND password = MD5(?)</tt>", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username and may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings and must be in the first column of the query's results. The query will be run as a prepared statement with one parameter: the username.<br/>Example: <tt>SELECT rolename FROM mapping_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule, FROM USERS WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt> ", "type": "string", "x-ignition-non-secret": false }, "tableNamePrefix": { "description": "When in automatic mode, tables will be created to store the users and roles. They will have this prefix.", "default": "scada_", "type": "string", "x-ignition-non-secret": false }, "enableUuids": { "description": "When in automatic mode, UUIDs will be generated for user and role IDs.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/user-source/FALLBK_CACHE", "title": "FALLBK_CACHE", "type": "object", "properties": { "cacheRetention": { "description": "Number of days that the cache will retain recently used credentials.", "default": 15, "minimum": 1, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/user-source/INTERNAL", "title": "INTERNAL", "type": "object", "properties": { "passwordMaxAge": { "description": "The maximum age (in days) that a password is valid for. A value of zero disables password expiration.", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": true }, "passwordMinLength": { "description": "Passwords must be at least this many characters long.", "default": 8, "minimum": 1, "maximum": 20, "type": "number", "x-ignition-non-secret": true }, "passwordComplexity": { "description": "The number of character types (lowercase letters, uppercase letters, digits, punctuation) each password must contain. For example, a value of 3 means passwords must have 3 of the 4 character types to be considered valid.", "default": 3, "minimum": 1, "maximum": 4, "type": "number", "x-ignition-non-secret": true }, "passwordHistory": { "description": "The number of previous passwords to store. Passwords in the history list may not be re-used. A value of zero disables this feature.", "default": 0, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true }, "passwordContainsPassword": { "description": "If enabled, passwords may not contain any form of the word \"password\". This includes: password, pass, word, pwd, passwd and pword.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordContainsUserName": { "description": "If enabled, passwords may not contain any form of the username.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordMaxRepeatedChars": { "description": "The maximum number of consecutive repeated characters allowed in a password. Set to 0 to disable.", "default": 3, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true } } } ] } } } }, "required": [ "name", "signature" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) modified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-user-source" ], "summary": "Create User Sources", "description": "Create a new User Sources resource", "parameters": [ { "name": "allowInvalidReferences", "in": "query", "description": "If true, invalid references will be allowed. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "requestBody": { "description": "List of resources to create", "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the resource" }, "collection": { "type": "string", "description": "The configuration collection to create the resource in" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "description": { "type": "string", "description": "The description of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "ADEASY", "ADHYBRID", "AD_DB_HYBRID", "DATASOURCE", "FALLBK_CACHE", "INTERNAL" ] }, "scheduleRestricted": { "description": "Users are only able to log in when their assigned schedule is active.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Schedule Restricted" }, "type": "boolean", "x-ignition-non-secret": false }, "failoverProfile": { "description": "If this source is unreachable for authentication, this failover source will be used instead.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Failover Profile", "referenceType": "ignition/user-source" }, "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "description": "The failover mode to use if a failover source is set. Hard - failover only if this source is unreachable. Soft - try the failover source when a user fails to authenticate with this source.", "default": "HARD", "x-form": { "fieldType": "SELECT", "category": "GENERAL", "label": "Failover Mode" }, "type": "string", "enum": [ "HARD", "SOFT" ], "x-ignition-non-secret": false }, "cacheValidationTimeout": { "description": "The amount of time in minutes between cache updates of the user source. Values less than one disable the cache.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Cache Validation Timeout" }, "type": "number", "x-ignition-non-secret": false }, "lockoutEnabled": { "description": "Lock out a user's account after more than the maximum allowed number of failed authentication attempts occur within the lockout window", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Lockout Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "lockoutAttempts": { "description": "Maximum number of failed authentication attempts allowed within the lockout window before locking the user out. Values less than one disables lockout.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Attempts" }, "type": "number", "x-ignition-non-secret": false }, "lockoutWindow": { "description": "The duration of the lockout window in minutes. Values less than one disables lockout.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Window" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/user-source/ADEASY", "title": "ADEASY", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userSearchBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User Search Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userRoleAttribute": { "description": "Attributes of this name on the User object will define the user's roles.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "nestedGroups": { "description": "If this option is checked, nested group membership lookups will be performed.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "groupRoleAttribute": { "description": "Attributes of this name on the Group object will define the group's roles. This setting is only applicable when nested group membership is enabled.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "roleNameAttribute": { "description": "The attribute of this name on the Role object will define the role's name. Leave blank to use the raw value of the attribute defined by User Role Attribute.", "default": "cn", "type": "string", "x-ignition-non-secret": false }, "roleIdAttribute": { "description": "The attribute of this name on the Role object will define the role's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "badgeAttribute": { "description": "The attribute on the User object to define the badge. This setting is required to enable badge-based authentication.", "type": "string", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "roleSearchBase": { "description": "The base folder to search for roles under, such as \"OU=Roles,DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the Role Search Filter. If you specify the root of your tree structure, the search may take a very long time. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Builtin,DC=MyCompany,DC=com)(OU=Users,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "roleSearchFilter": { "description": "The LDAP search filter to use to locate roles.", "default": "(objectClass=group)", "type": "string", "x-ignition-non-secret": false }, "badgeSearchFilter": { "description": "The LDAP search filter to use to find a specific user given a badge. Use the placeholder {0} as a standin for the user's badge. Example: (&(objectClass=user)(badge={0}))", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ] }, { "$id": "ignition/user-source/ADHYBRID", "title": "ADHYBRID", "type": "object", "properties": { "ldap": { "description": "LDAP settings", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations.", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-int-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, users must be added manually.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "populateUsersOnDemand": { "description": "If true, a user record will be created in the Internal user source from the AD entry of any user who successfully authenticates into AD if the record does not already exist in the Internal user source at the time of authentication.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "ldap" ] }, { "$id": "ignition/user-source/AD_DB_HYBRID", "title": "AD_DB_HYBRID", "type": "object", "properties": { "database": { "description": "Database settings", "type": "object", "properties": { "datasource": { "description": "The database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username.<br/>Example: <tt>SELECT username FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value, and the third column the name of a schedule. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value, schedule FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. Only used if \"List Users from Active Directory\" is false. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "userPropsQuery": { "description": "A query that returns the basic properties for a single user. Only used if \"List Users from Active Directory\" is true. Supported return columns are [firstname, lastname, schedule, language, notes, badge]. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT firstname, lastname, schedule, language, notes, badge FROM user_table WHERE username = ?</tt> ", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. Only used if \"List Users from Active Directory\" is false. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings (i.e. the role names), and must be in the first column of the query's results. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT rolename FROM user_role_mapping WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false } }, "required": [ "datasource" ], "x-ignition-non-secret": false }, "ldap": { "description": "LDAP settings", "type": "object", "properties": { "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users via LDAP.", "type": "string", "x-ignition-non-secret": false }, "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-db-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1", "port1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, the database will be queried instead.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "database", "ldap" ] }, { "$id": "ignition/user-source/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Choose the database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "mode": { "description": "In Automatic mode, tables will be created for you and all interaction with the database is handled automatically. In Manual mode, you write queries by hand against tables that you've created. Management of users (adding, removing etc) is not supported in manual mode.", "default": "Automatic", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "authQuery": { "description": "A query that must return a row if the given username and password combination provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent username first and then password. The returned row may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT useruuid, firstname, lastname, schedule FROM USERS WHERE username = ? AND password = MD5(?)</tt>", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username and may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings and must be in the first column of the query's results. The query will be run as a prepared statement with one parameter: the username.<br/>Example: <tt>SELECT rolename FROM mapping_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule, FROM USERS WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt> ", "type": "string", "x-ignition-non-secret": false }, "tableNamePrefix": { "description": "When in automatic mode, tables will be created to store the users and roles. They will have this prefix.", "default": "scada_", "type": "string", "x-ignition-non-secret": false }, "enableUuids": { "description": "When in automatic mode, UUIDs will be generated for user and role IDs.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/user-source/FALLBK_CACHE", "title": "FALLBK_CACHE", "type": "object", "properties": { "cacheRetention": { "description": "Number of days that the cache will retain recently used credentials.", "default": 15, "minimum": 1, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/user-source/INTERNAL", "title": "INTERNAL", "type": "object", "properties": { "passwordMaxAge": { "description": "The maximum age (in days) that a password is valid for. A value of zero disables password expiration.", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": true }, "passwordMinLength": { "description": "Passwords must be at least this many characters long.", "default": 8, "minimum": 1, "maximum": 20, "type": "number", "x-ignition-non-secret": true }, "passwordComplexity": { "description": "The number of character types (lowercase letters, uppercase letters, digits, punctuation) each password must contain. For example, a value of 3 means passwords must have 3 of the 4 character types to be considered valid.", "default": 3, "minimum": 1, "maximum": 4, "type": "number", "x-ignition-non-secret": true }, "passwordHistory": { "description": "The number of previous passwords to store. Passwords in the history list may not be re-used. A value of zero disables this feature.", "default": 0, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true }, "passwordContainsPassword": { "description": "If enabled, passwords may not contain any form of the word \"password\". This includes: password, pass, word, pwd, passwd and pword.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordContainsUserName": { "description": "If enabled, passwords may not contain any form of the username.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordMaxRepeatedChars": { "description": "The maximum number of consecutive repeated characters allowed in a password. Set to 0 to disable.", "default": 3, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "ADEASY", "ADHYBRID", "AD_DB_HYBRID", "DATASOURCE", "FALLBK_CACHE", "INTERNAL" ] }, "scheduleRestricted": { "description": "Users are only able to log in when their assigned schedule is active.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Schedule Restricted" }, "type": "boolean", "x-ignition-non-secret": false }, "failoverProfile": { "description": "If this source is unreachable for authentication, this failover source will be used instead.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Failover Profile", "referenceType": "ignition/user-source" }, "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "description": "The failover mode to use if a failover source is set. Hard - failover only if this source is unreachable. Soft - try the failover source when a user fails to authenticate with this source.", "default": "HARD", "x-form": { "fieldType": "SELECT", "category": "GENERAL", "label": "Failover Mode" }, "type": "string", "enum": [ "HARD", "SOFT" ], "x-ignition-non-secret": false }, "cacheValidationTimeout": { "description": "The amount of time in minutes between cache updates of the user source. Values less than one disable the cache.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Cache Validation Timeout" }, "type": "number", "x-ignition-non-secret": false }, "lockoutEnabled": { "description": "Lock out a user's account after more than the maximum allowed number of failed authentication attempts occur within the lockout window", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Lockout Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "lockoutAttempts": { "description": "Maximum number of failed authentication attempts allowed within the lockout window before locking the user out. Values less than one disables lockout.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Attempts" }, "type": "number", "x-ignition-non-secret": false }, "lockoutWindow": { "description": "The duration of the lockout window in minutes. Values less than one disables lockout.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Window" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/user-source/ADEASY", "title": "ADEASY", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userSearchBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User Search Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userRoleAttribute": { "description": "Attributes of this name on the User object will define the user's roles.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "nestedGroups": { "description": "If this option is checked, nested group membership lookups will be performed.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "groupRoleAttribute": { "description": "Attributes of this name on the Group object will define the group's roles. This setting is only applicable when nested group membership is enabled.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "roleNameAttribute": { "description": "The attribute of this name on the Role object will define the role's name. Leave blank to use the raw value of the attribute defined by User Role Attribute.", "default": "cn", "type": "string", "x-ignition-non-secret": false }, "roleIdAttribute": { "description": "The attribute of this name on the Role object will define the role's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "badgeAttribute": { "description": "The attribute on the User object to define the badge. This setting is required to enable badge-based authentication.", "type": "string", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "roleSearchBase": { "description": "The base folder to search for roles under, such as \"OU=Roles,DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the Role Search Filter. If you specify the root of your tree structure, the search may take a very long time. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Builtin,DC=MyCompany,DC=com)(OU=Users,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "roleSearchFilter": { "description": "The LDAP search filter to use to locate roles.", "default": "(objectClass=group)", "type": "string", "x-ignition-non-secret": false }, "badgeSearchFilter": { "description": "The LDAP search filter to use to find a specific user given a badge. Use the placeholder {0} as a standin for the user's badge. Example: (&(objectClass=user)(badge={0}))", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ] }, { "$id": "ignition/user-source/ADHYBRID", "title": "ADHYBRID", "type": "object", "properties": { "ldap": { "description": "LDAP settings", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations.", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-int-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, users must be added manually.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "populateUsersOnDemand": { "description": "If true, a user record will be created in the Internal user source from the AD entry of any user who successfully authenticates into AD if the record does not already exist in the Internal user source at the time of authentication.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "ldap" ] }, { "$id": "ignition/user-source/AD_DB_HYBRID", "title": "AD_DB_HYBRID", "type": "object", "properties": { "database": { "description": "Database settings", "type": "object", "properties": { "datasource": { "description": "The database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username.<br/>Example: <tt>SELECT username FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value, and the third column the name of a schedule. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value, schedule FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. Only used if \"List Users from Active Directory\" is false. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "userPropsQuery": { "description": "A query that returns the basic properties for a single user. Only used if \"List Users from Active Directory\" is true. Supported return columns are [firstname, lastname, schedule, language, notes, badge]. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT firstname, lastname, schedule, language, notes, badge FROM user_table WHERE username = ?</tt> ", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. Only used if \"List Users from Active Directory\" is false. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings (i.e. the role names), and must be in the first column of the query's results. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT rolename FROM user_role_mapping WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false } }, "required": [ "datasource" ], "x-ignition-non-secret": false }, "ldap": { "description": "LDAP settings", "type": "object", "properties": { "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users via LDAP.", "type": "string", "x-ignition-non-secret": false }, "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-db-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1", "port1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, the database will be queried instead.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "database", "ldap" ] }, { "$id": "ignition/user-source/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Choose the database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "mode": { "description": "In Automatic mode, tables will be created for you and all interaction with the database is handled automatically. In Manual mode, you write queries by hand against tables that you've created. Management of users (adding, removing etc) is not supported in manual mode.", "default": "Automatic", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "authQuery": { "description": "A query that must return a row if the given username and password combination provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent username first and then password. The returned row may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT useruuid, firstname, lastname, schedule FROM USERS WHERE username = ? AND password = MD5(?)</tt>", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username and may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings and must be in the first column of the query's results. The query will be run as a prepared statement with one parameter: the username.<br/>Example: <tt>SELECT rolename FROM mapping_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule, FROM USERS WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt> ", "type": "string", "x-ignition-non-secret": false }, "tableNamePrefix": { "description": "When in automatic mode, tables will be created to store the users and roles. They will have this prefix.", "default": "scada_", "type": "string", "x-ignition-non-secret": false }, "enableUuids": { "description": "When in automatic mode, UUIDs will be generated for user and role IDs.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/user-source/FALLBK_CACHE", "title": "FALLBK_CACHE", "type": "object", "properties": { "cacheRetention": { "description": "Number of days that the cache will retain recently used credentials.", "default": 15, "minimum": 1, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/user-source/INTERNAL", "title": "INTERNAL", "type": "object", "properties": { "passwordMaxAge": { "description": "The maximum age (in days) that a password is valid for. A value of zero disables password expiration.", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": true }, "passwordMinLength": { "description": "Passwords must be at least this many characters long.", "default": 8, "minimum": 1, "maximum": 20, "type": "number", "x-ignition-non-secret": true }, "passwordComplexity": { "description": "The number of character types (lowercase letters, uppercase letters, digits, punctuation) each password must contain. For example, a value of 3 means passwords must have 3 of the 4 character types to be considered valid.", "default": 3, "minimum": 1, "maximum": 4, "type": "number", "x-ignition-non-secret": true }, "passwordHistory": { "description": "The number of previous passwords to store. Passwords in the history list may not be re-used. A value of zero disables this feature.", "default": 0, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true }, "passwordContainsPassword": { "description": "If enabled, passwords may not contain any form of the word \"password\". This includes: password, pass, word, pwd, passwd and pword.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordContainsUserName": { "description": "If enabled, passwords may not contain any form of the username.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordMaxRepeatedChars": { "description": "The maximum number of consecutive repeated characters allowed in a password. Set to 0 to disable.", "default": 3, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true } } } ] } } } }, "required": [ "name" ] } } } } }, "responses": { "400": { "description": "Invalid request body" }, "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "422": { "description": "Validation failed", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "description": "Validation messages that are not associated with specific fields", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false }, "fieldMessages": { "description": "Validation messages that are associated with specific fields", "type": "array", "items": { "type": "object", "properties": { "fieldName": { "description": "The name of the field that the validation messages are associated with", "type": "string", "x-ignition-non-secret": false }, "messages": { "description": "The validation messages for the field", "type": "array", "items": { "type": "string", "messages": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } }, "200": { "description": "Success, resource(s) created", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/ignition/user-source/{name}/{signature}": { "delete": { "tags": [ "config-user-source" ], "summary": "Delete User Sources", "description": "Delete a User Sources resource by name", "parameters": [ { "name": "name", "in": "path", "description": "The name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "signature", "in": "path", "description": "The signature of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to delete the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "confirm", "in": "query", "description": "Whether to confirm the deletion, required when the operation would affect other resources.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean" } } ], "responses": { "400": { "description": "Missing 'name' or 'signature' parameter" }, "404": { "description": "Resource not found" }, "200": { "description": "Success or confirm required", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.alarm-notification/alarm-notification-profile": { "get": { "tags": [ "alarm-notification-profile" ], "summary": "List Alarm Notification Profiles Resources", "description": "List all Alarm Notification Profiles resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "AirlinkSms", "EmailNotificationProfileType", "OneWayNotificationProfileType", "RemoteNotificationProfileType" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/AirlinkSms", "title": "AirlinkSms", "type": "object", "properties": { "hostAddress": { "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "sendPort": { "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "receivePort": { "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupHostAddress": { "description": "Host Address to use if on a Backup Gateway", "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Backup Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "backupSendPort": { "description": "Send Port to use if on a Backup Gateway", "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupReceivePort": { "description": "Receive Port to use if on a Backup Gateway", "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "numericOnlyAckCode": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Numeric Only Ack Code" }, "type": "boolean", "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as SMS messages and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostAddress", "sendPort", "receivePort", "backupHostAddress", "backupSendPort", "backupReceivePort" ] }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/EmailNotificationProfileType", "title": "EmailNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "useSmtpProfile": { "description": "If selected, this notification profile will use one of the Gateway defined email profiles. Otherwise, it will use the settings defined here.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Use SMTP Profile" }, "type": "boolean", "x-ignition-non-secret": false }, "emailProfile": { "description": "If Use Email Profile is selected, alarm notifications will be emailed using this profile.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "hostname": { "description": "Hostname of the SMTP server to send email through. Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on. Only used when Use SMTP Profile is false.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "EMAIL SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "sslEnabled": { "description": "Connect using SSL/TLS. Only used when Use SMTP Profile is false.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Only used when Use SMTP Profile is false.", "x-form": { "fieldType": "SECRET", "category": "EMAIL SETTINGS", "label": "Password" } } }, "required": [ "port" ], "x-ignition-non-secret": false }, "twoWay": { "description": "Two-way Settings", "type": "object", "properties": { "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "gatewayAddress": { "description": "Address and port this Gateway is reachable at. Will be used in notification emails. Example: 1.2.3.4:8088", "default": "null", "x-form": { "fieldType": "TEXT", "category": "TWO-WAY SETTINGS", "label": "Gateway" }, "type": "string", "x-ignition-non-secret": false }, "httpsLinkEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Send HTTPS Link" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "twoWayPop3": { "description": "Pop3 Two-way Settings", "type": "object", "properties": { "pop3TwoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Pop3 Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3SslEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3DeleteMessage": { "description": "Delete the message from the inbox after acknowledging the alarm.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Delete on Acknowledge" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3Hostname": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "pop3Port": { "default": 110, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "pop3Username": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "pop3Password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "POP3 TWO-WAY SETTINGS", "label": "Password" } }, "pop3CustomMessage": { "description": "A message included in the notification email.", "default": "null", "x-form": { "fieldType": "TEXTAREA", "category": "POP3 TWO-WAY SETTINGS", "label": "Custom Message" }, "type": "string", "x-ignition-non-secret": false }, "pop3PollingInterval": { "description": "The interval to check the POP3 server, in milliseconds.", "default": 60000, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Polling Interval *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pop3Port", "pop3PollingInterval" ], "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as emails and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Enable use of the STARTTLS command, allowing the connection to be upgraded to an SSL or TLS connection if supported by the server. This is not necessary for connections that are already SSL/TLS. Ignored when Use SMTP Profile is checked.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "STARTTLS Enabled" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "smtpTimeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/OneWayNotificationProfileType", "title": "OneWayNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "emailProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "roster": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "On-Call Roster", "referenceType": "ignition/roster-config" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "criteria": { "description": "Alarm Criteria", "type": "object", "properties": { "minPriority": { "default": "Low", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "maxPriority": { "default": "Critical", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Maximum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "fromAddress": { "description": "An optional address to use for the From field. If empty, the email session username will be used.", "default": "null", "pattern": "EMAIL", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "From Address" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/RemoteNotificationProfileType", "title": "RemoteNotificationProfileType", "type": "object", "properties": { "remoteInfo": { "description": "Remote Gateway", "type": "object", "properties": { "serverName": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Notification Profile", "referenceType": "com.inductiveautomation.alarm-notification/alarm-notification-profile" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "retryDelayMillis": { "description": "Delay, in milliseconds, between retries of a failed attempt to synchronize with the remote profile.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Retry Delay (Milliseconds) *" }, "type": "number", "x-ignition-non-secret": false }, "maxEvaluationQueueSize": { "description": "Maximum size of the transition evaluation queue before the oldest entries are start getting discarded. This queue is only expected to fill while the connection to the remote is not available.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Queued Alarm Transitions *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "retryDelayMillis", "maxEvaluationQueueSize" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "AirlinkSms", "EmailNotificationProfileType", "OneWayNotificationProfileType", "RemoteNotificationProfileType" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/AirlinkSms", "title": "AirlinkSms", "type": "object", "properties": { "hostAddress": { "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "sendPort": { "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "receivePort": { "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupHostAddress": { "description": "Host Address to use if on a Backup Gateway", "default": "0.0.0.0", "x-form": { "fieldType": "TEXT", "category": "SMS SETTINGS", "label": "Airlink Backup Host Address *" }, "type": "string", "x-ignition-non-secret": false }, "backupSendPort": { "description": "Send Port to use if on a Backup Gateway", "default": 17341, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Send Port *" }, "type": "number", "x-ignition-non-secret": false }, "backupReceivePort": { "description": "Receive Port to use if on a Backup Gateway", "default": 17342, "x-form": { "fieldType": "NUMBER", "category": "SMS SETTINGS", "label": "Backup Receive Port *" }, "type": "number", "x-ignition-non-secret": false }, "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "numericOnlyAckCode": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "SMS SETTINGS", "label": "Numeric Only Ack Code" }, "type": "boolean", "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as SMS messages and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostAddress", "sendPort", "receivePort", "backupHostAddress", "backupSendPort", "backupReceivePort" ] }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/EmailNotificationProfileType", "title": "EmailNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "useSmtpProfile": { "description": "If selected, this notification profile will use one of the Gateway defined email profiles. Otherwise, it will use the settings defined here.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Use SMTP Profile" }, "type": "boolean", "x-ignition-non-secret": false }, "emailProfile": { "description": "If Use Email Profile is selected, alarm notifications will be emailed using this profile.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "hostname": { "description": "Hostname of the SMTP server to send email through. Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on. Only used when Use SMTP Profile is false.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "EMAIL SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "sslEnabled": { "description": "Connect using SSL/TLS. Only used when Use SMTP Profile is false.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EMAIL SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "Only used when Use SMTP Profile is false.", "default": "null", "x-form": { "fieldType": "TEXT", "category": "EMAIL SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Only used when Use SMTP Profile is false.", "x-form": { "fieldType": "SECRET", "category": "EMAIL SETTINGS", "label": "Password" } } }, "required": [ "port" ], "x-ignition-non-secret": false }, "twoWay": { "description": "Two-way Settings", "type": "object", "properties": { "twoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "gatewayAddress": { "description": "Address and port this Gateway is reachable at. Will be used in notification emails. Example: 1.2.3.4:8088", "default": "null", "x-form": { "fieldType": "TEXT", "category": "TWO-WAY SETTINGS", "label": "Gateway" }, "type": "string", "x-ignition-non-secret": false }, "httpsLinkEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "TWO-WAY SETTINGS", "label": "Send HTTPS Link" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "twoWayPop3": { "description": "Pop3 Two-way Settings", "type": "object", "properties": { "pop3TwoWayEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Pop3 Two-way Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3SslEnabled": { "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Enable SSL/TLS" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3DeleteMessage": { "description": "Delete the message from the inbox after acknowledging the alarm.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "POP3 TWO-WAY SETTINGS", "label": "Delete on Acknowledge" }, "type": "boolean", "x-ignition-non-secret": false }, "pop3Hostname": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Hostname" }, "type": "string", "x-ignition-non-secret": false }, "pop3Port": { "default": 110, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "pop3Username": { "default": "null", "x-form": { "fieldType": "TEXT", "category": "POP3 TWO-WAY SETTINGS", "label": "Username" }, "type": "string", "x-ignition-non-secret": false }, "pop3Password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "POP3 TWO-WAY SETTINGS", "label": "Password" } }, "pop3CustomMessage": { "description": "A message included in the notification email.", "default": "null", "x-form": { "fieldType": "TEXTAREA", "category": "POP3 TWO-WAY SETTINGS", "label": "Custom Message" }, "type": "string", "x-ignition-non-secret": false }, "pop3PollingInterval": { "description": "The interval to check the POP3 server, in milliseconds.", "default": 60000, "x-form": { "fieldType": "NUMBER", "category": "POP3 TWO-WAY SETTINGS", "label": "Polling Interval *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pop3Port", "pop3PollingInterval" ], "x-ignition-non-secret": false }, "auditProfile": { "description": "If an audit profile is selected, events such as emails and acknowledgements will be stored to the audit system. Note that alarm acknowledgements are also stored to the alarm journal.", "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "AUDITING", "label": "Audit Profile", "referenceType": "ignition/audit-profile" }, "type": "string", "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Enable use of the STARTTLS command, allowing the connection to be upgraded to an SSL or TLS connection if supported by the server. This is not necessary for connections that are already SSL/TLS. Ignored when Use SMTP Profile is checked.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "STARTTLS Enabled" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "smtpTimeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/OneWayNotificationProfileType", "title": "OneWayNotificationProfileType", "type": "object", "properties": { "settings": { "description": "Email Settings", "type": "object", "properties": { "emailProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "SMTP Profile", "referenceType": "ignition/email-profile" }, "type": "string", "x-ignition-non-secret": false }, "roster": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "EMAIL SETTINGS", "label": "On-Call Roster", "referenceType": "ignition/roster-config" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "criteria": { "description": "Alarm Criteria", "type": "object", "properties": { "minPriority": { "default": "Low", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "maxPriority": { "default": "Critical", "x-form": { "fieldType": "SELECT", "category": "ALARM CRITERIA", "label": "Maximum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "fromAddress": { "description": "An optional address to use for the From field. If empty, the email session username will be used.", "default": "null", "pattern": "EMAIL", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "From Address" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.alarm-notification/alarm-notification-profile/RemoteNotificationProfileType", "title": "RemoteNotificationProfileType", "type": "object", "properties": { "remoteInfo": { "description": "Remote Gateway", "type": "object", "properties": { "serverName": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "default": "null", "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Notification Profile", "referenceType": "com.inductiveautomation.alarm-notification/alarm-notification-profile" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "retryDelayMillis": { "description": "Delay, in milliseconds, between retries of a failed attempt to synchronize with the remote profile.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Retry Delay (Milliseconds) *" }, "type": "number", "x-ignition-non-secret": false }, "maxEvaluationQueueSize": { "description": "Maximum size of the transition evaluation queue before the oldest entries are start getting discarded. This queue is only expected to fill while the connection to the remote is not available.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Queued Alarm Transitions *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "retryDelayMillis", "maxEvaluationQueueSize" ], "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.eam/agent-group": { "get": { "tags": [ "agent-group" ], "summary": "List Agent Groups Resources", "description": "List all Agent Groups resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object" }, "backupConfig": { "type": "object" }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.eam/agent-management": { "get": { "tags": [ "agent-management" ], "summary": "List Agent Management Resources", "description": "List all Agent Management resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "serverId": { "description": "Agent ServerId in encoded form (such as '_0:0:agent')", "type": "string", "x-ignition-non-secret": false }, "groupName": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "serverId": { "description": "Agent ServerId in encoded form (such as '_0:0:agent')", "type": "string", "x-ignition-non-secret": false }, "groupName": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.eam/eam-tasks": { "get": { "tags": [ "eam-tasks" ], "summary": "List EAM Agent Task Resources", "description": "List all EAM Agent Task resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "eam_activateLicense", "eam_backup", "eam_installModules", "eam_remoteUpgrade", "eam_restart", "eam_restoreBackup", "eam_sendProject", "eam_sendResource", "eam_sendTags", "eam_unactivateLicense", "eam_updateLicense" ] }, "isSuspended": { "type": "boolean", "x-ignition-non-secret": false }, "scheduleMode": { "type": "string", "enum": [ "Immediate", "AtTime", "AtDelay", "Scheduled", "OnDemand" ], "x-ignition-non-secret": false }, "scheduleDetails": { "type": "string", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.eam/eam-tasks/eam_activateLicense", "title": "eam_activateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_backup", "title": "eam_backup", "type": "object", "properties": { "concurrentBackups": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "forceBackups": { "description": "If true, a gateway backup will be always generated for the agent, even if the agent gateway configuration has not changed since the last backup was taken.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_installModules", "title": "eam_installModules", "type": "object", "properties": { "moduleInfo": { "description": "User-readable meta information about the modules that will be installed when the task runs.", "type": "object", "properties": { "name": { "description": "The module's name", "type": "string", "x-ignition-non-secret": false }, "version": { "description": "The module's version", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "restartAgent": { "description": "If true, the agent gateway will be restarted after the modules are installed.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_remoteUpgrade", "title": "eam_remoteUpgrade", "type": "object", "properties": { "upgradeZipTransferType": { "description": "Set to 'Send over Gateway Network' to stream the upgrade zip to the agent. Set to 'Alternate URL' to force the agent to download the upgrade zip on its own from a provided URL.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restart", "title": "eam_restart", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restoreBackup", "title": "eam_restoreBackup", "type": "object", "properties": { "uploadedGwbkpath": { "description": "A path to the temporary .gwbk file on disk. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "archivedGwbkpath": { "description": "A path to a .gwbk file in the EAM archive. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "restoredisabled": { "description": "If true, all agent configuration will be disabled after the restore operation.", "type": "boolean", "x-ignition-non-secret": false }, "installModules": { "description": "If true, any missing modules will be installed during the restore operation. Missing modules are modules that were installed on the agent when the backup was taken, but are not installed now.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendProject", "title": "eam_sendProject", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited projects will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway from where the project will be retrieved.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project that will be retrieved.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendResource", "title": "eam_sendResource", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited resources will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "targetProject": { "description": "The selected resources will be sent to this project on the specified agents.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendTags", "title": "eam_sendTags", "type": "object", "properties": { "targetTagProvider": { "description": "The tag provider that will receive the tags.", "type": "string", "x-ignition-non-secret": false }, "tagPaths": { "description": "A comma-separated list of tag paths.", "type": "string", "x-ignition-non-secret": false }, "collisionPolicy": { "description": "The tag collision policy. Valid values include 'Abort', 'Overwrite', 'Rename', 'Ignore', and 'MergeOverwrite'.", "type": "string", "x-ignition-non-secret": false }, "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_unactivateLicense", "title": "eam_unactivateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_updateLicense", "title": "eam_updateLicense", "type": "object" } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "eam_activateLicense", "eam_backup", "eam_installModules", "eam_remoteUpgrade", "eam_restart", "eam_restoreBackup", "eam_sendProject", "eam_sendResource", "eam_sendTags", "eam_unactivateLicense", "eam_updateLicense" ] }, "isSuspended": { "type": "boolean", "x-ignition-non-secret": false }, "scheduleMode": { "type": "string", "enum": [ "Immediate", "AtTime", "AtDelay", "Scheduled", "OnDemand" ], "x-ignition-non-secret": false }, "scheduleDetails": { "type": "string", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.eam/eam-tasks/eam_activateLicense", "title": "eam_activateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_backup", "title": "eam_backup", "type": "object", "properties": { "concurrentBackups": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "forceBackups": { "description": "If true, a gateway backup will be always generated for the agent, even if the agent gateway configuration has not changed since the last backup was taken.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_installModules", "title": "eam_installModules", "type": "object", "properties": { "moduleInfo": { "description": "User-readable meta information about the modules that will be installed when the task runs.", "type": "object", "properties": { "name": { "description": "The module's name", "type": "string", "x-ignition-non-secret": false }, "version": { "description": "The module's version", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "restartAgent": { "description": "If true, the agent gateway will be restarted after the modules are installed.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_remoteUpgrade", "title": "eam_remoteUpgrade", "type": "object", "properties": { "upgradeZipTransferType": { "description": "Set to 'Send over Gateway Network' to stream the upgrade zip to the agent. Set to 'Alternate URL' to force the agent to download the upgrade zip on its own from a provided URL.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restart", "title": "eam_restart", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_restoreBackup", "title": "eam_restoreBackup", "type": "object", "properties": { "uploadedGwbkpath": { "description": "A path to the temporary .gwbk file on disk. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "archivedGwbkpath": { "description": "A path to a .gwbk file in the EAM archive. This .gwbk file will be distributed to agents.", "type": "string", "x-ignition-non-secret": false }, "restoredisabled": { "description": "If true, all agent configuration will be disabled after the restore operation.", "type": "boolean", "x-ignition-non-secret": false }, "installModules": { "description": "If true, any missing modules will be installed during the restore operation. Missing modules are modules that were installed on the agent when the backup was taken, but are not installed now.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendProject", "title": "eam_sendProject", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited projects will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway from where the project will be retrieved.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project that will be retrieved.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendResource", "title": "eam_sendResource", "type": "object", "properties": { "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true }, "flattenProjectsKey": { "description": "If true, the selected project and any inherited resources will be combined into a single project on the target agents.", "type": "boolean", "x-ignition-non-secret": true }, "maxConcurrentAgents": { "description": "Set to a value greater than 0 to limit the number of agents that will be concurrently contacted while the task runs.", "type": "number", "x-ignition-non-secret": false }, "selectedGateway": { "description": "The source gateway where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "sourceProject": { "description": "The source project where project resources will be collected from.", "type": "string", "x-ignition-non-secret": false }, "targetProject": { "description": "The selected resources will be sent to this project on the specified agents.", "type": "string", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_sendTags", "title": "eam_sendTags", "type": "object", "properties": { "targetTagProvider": { "description": "The tag provider that will receive the tags.", "type": "string", "x-ignition-non-secret": false }, "tagPaths": { "description": "A comma-separated list of tag paths.", "type": "string", "x-ignition-non-secret": false }, "collisionPolicy": { "description": "The tag collision policy. Valid values include 'Abort', 'Overwrite', 'Rename', 'Ignore', and 'MergeOverwrite'.", "type": "string", "x-ignition-non-secret": false }, "controllerIsTargetKey": { "description": "If true, the controller will also be a target gateway for the task.", "type": "boolean", "x-ignition-non-secret": true } } }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_unactivateLicense", "title": "eam_unactivateLicense", "type": "object" }, { "$id": "com.inductiveautomation.eam/eam-tasks/eam_updateLicense", "title": "eam_updateLicense", "type": "object" } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "scheduledTaskState": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.eam/hw-license-management": { "get": { "tags": [ "license-management" ], "summary": "List Hardware License Resources", "description": "List all Hardware License resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "licenseKey": { "description": "The 6-digit hardware license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "licenseKey": { "description": "The 6-digit hardware license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.eam/leased-license-management": { "get": { "tags": [ "license-management" ], "summary": "List Leased License Resources", "description": "List all Leased License resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "licenseKey": { "description": "The 8-digit leased license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "licenseKey": { "description": "The 8-digit leased license key", "type": "string", "x-ignition-non-secret": true }, "agentName": { "description": "The agent name as per the 'agent-management' resource name. Value will be null for a license that is not assigned to an agent.", "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.eam/module-certificates": { "get": { "tags": [ "module-certificate" ], "summary": "List Module Certificate Resources", "description": "List all Module Certificate resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "thumbprint": { "description": "Bytes that contain the thumbprint of the module's certificate.", "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "subjectName": { "description": "The subject name of the module's certificate.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "thumbprint": { "description": "Bytes that contain the thumbprint of the module's certificate.", "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "subjectName": { "description": "The subject name of the module's certificate.", "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.eam/module-eulas": { "get": { "tags": [ "module-eula" ], "summary": "List Module EULA Resources", "description": "List all Module EULA resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "moduleId": { "description": "The full module id", "type": "string", "x-ignition-non-secret": false }, "crc": { "description": "Calculated CRC of the module's EULA file", "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "moduleId": { "description": "The full module id", "type": "string", "x-ignition-non-secret": false }, "crc": { "description": "Calculated CRC of the module's EULA file", "type": "number", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.eam/remote-upgrade": { "get": { "tags": [ "remote-upgrade" ], "summary": "List Remote Upgrade Resources", "description": "List all Remote Upgrade resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "serverId": { "description": "ServerId in encoded form (such as '_0:0:agent') of the EAM agent.", "type": "string", "x-ignition-non-secret": false }, "role": { "description": "The redundant role of the EAM agent, such as 'Master', or 'Backup'. Will be blank for Independent agents.", "type": "string", "x-ignition-non-secret": false }, "statusTimestamp": { "description": "Value holds the timestamp of the most recent upgrade status message.", "type": "number", "x-ignition-non-secret": false }, "agentGroup": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false }, "upgradeStatus": { "description": "The current status of the remote upgrade on the EAM agent.", "type": "string", "enum": [ "Status is unknown", "Preparing upgrade zip file", "\u00bfeam.tasks.remoteUpgrade.status.PrepFail?", "Waiting to send upgrade zip", "Waiting to trigger agent downloads", "Exception thrown within task", "Error on agent", "Agent was not found", "Agent is not connected", "Sending zip to agent", "Error sending zip", "Agent failed to download upgrade zip", "Waiting for backup node upgrade", "Ready to upgrade", "Tranfer node responsibility", "Sending upgrade request", "Upgrade in progress", "Agent needs commissioning", "Upgrade success", "Upgrade failed", "Trial expired" ], "x-ignition-non-secret": false }, "statusMsg": { "description": "If available, this will report details on the current status of the remote upgrade.", "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "serverId": { "description": "ServerId in encoded form (such as '_0:0:agent') of the EAM agent.", "type": "string", "x-ignition-non-secret": false }, "role": { "description": "The redundant role of the EAM agent, such as 'Master', or 'Backup'. Will be blank for Independent agents.", "type": "string", "x-ignition-non-secret": false }, "statusTimestamp": { "description": "Value holds the timestamp of the most recent upgrade status message.", "type": "number", "x-ignition-non-secret": false }, "agentGroup": { "description": "The agent group that the agent is assigned to.", "type": "string", "x-ignition-non-secret": false }, "upgradeStatus": { "description": "The current status of the remote upgrade on the EAM agent.", "type": "string", "enum": [ "Status is unknown", "Preparing upgrade zip file", "\u00bfeam.tasks.remoteUpgrade.status.PrepFail?", "Waiting to send upgrade zip", "Waiting to trigger agent downloads", "Exception thrown within task", "Error on agent", "Agent was not found", "Agent is not connected", "Sending zip to agent", "Error sending zip", "Agent failed to download upgrade zip", "Waiting for backup node upgrade", "Ready to upgrade", "Tranfer node responsibility", "Sending upgrade request", "Upgrade in progress", "Agent needs commissioning", "Upgrade success", "Upgrade failed", "Trial expired" ], "x-ignition-non-secret": false }, "statusMsg": { "description": "If available, this will report details on the current status of the remote upgrade.", "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.historian/historian-provider": { "get": { "tags": [ "historian-config" ], "summary": "List Historian Resources", "description": "List all Historian resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CoreHistorian", "CsvHistorian", "HistorySplitter", "InternalHistorian", "RemoteHistorian", "SimulatorHistorian", "SqlHistorian", "WideDbHistorian" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.historian/historian-provider/CoreHistorian", "title": "CoreHistorian", "type": "object", "properties": { "partitionInterval": { "description": "The partition interval used when creating tables.", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "dataDeduplication": { "description": "When deduplication is enabled, incoming data with matching keys will update existing entries rather than create new ones, which helps maintain data integrity by allowing corrected data to replace erroneous entries.", "type": "boolean", "x-ignition-non-secret": false }, "maintenanceSettings": { "description": "Specifies the maintenance settings for handling data that exceeds the retention limit.", "type": "object", "properties": { "strategy": { "description": "Determines whether older data is archived to a target location or permanently deleted.", "type": "string", "enum": [ "NONE", "ARCHIVE", "PRUNE" ], "x-ignition-non-secret": false }, "directory": { "description": "Specifies the target directory path where data will be archived when maintenance mode is set to ARCHIVE. Must be a valid, writable directory location.", "type": "string", "x-ignition-non-secret": false }, "maintenanceAgeUnits": { "description": "\u00bfCoreHistorianSettings.MaintenanceAgeUnit.Description?", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maintenanceAge": { "description": "Specifies the age threshold for data maintenance.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/CsvHistorian", "title": "CsvHistorian", "type": "object", "properties": { "filePath": { "description": "Specifies the CSV file path. Required format: timestamp column followed by value columns, with tag names defined in the header row.", "type": "string", "x-ignition-non-secret": false }, "relativeTimestamps": { "description": "When enabled, treats the first timestamp as a reference point, interpreting subsequent timestamps as relative offsets from this initial time.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/HistorySplitter", "title": "HistorySplitter", "type": "object", "properties": { "primaryHistorian": { "description": "The primary historian for data storage and queries. Serves as the default query source unless limited by time constraints or when unavailable.", "type": "string", "x-ignition-non-secret": false }, "secondaryHistorian": { "description": "The secondary historian for data storage, handling queries when the primary is unavailable or when queries exceed the configured time limit.", "type": "string", "x-ignition-non-secret": false }, "queryLimit": { "description": "Controls whether queries are routed based on time constraints.", "type": "object", "properties": { "enabled": { "description": "If enabled, older queries are automatically directed to the secondary historian.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how far back in time queries will be handled by the primary historian before routing to the secondary historian.", "type": "number", "x-ignition-non-secret": false }, "units": { "description": "The time unit used for the query routing threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/InternalHistorian", "title": "InternalHistorian", "type": "object", "properties": { "timeLimit": { "description": "Controls whether data is retained based on age.", "type": "object", "properties": { "enabled": { "description": "If enabled, older data is removed to maintain the specified time limit.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how long data should be retained before removal.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "The time unit used for the storage time limit.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pointLimit": { "description": "Controls whether data is limited by the total number of stored points.", "type": "object", "properties": { "enabled": { "description": "If enabled, oldest points are removed when limit is exceeded.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the maximum number of data points to retain in storage.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "remoteSync": { "description": "Configures real-time data synchronization to a remote gateway historian.", "type": "object", "properties": { "enabled": { "description": "If enabled, historical data is synchronized based on the specified frequency, batch size, and optional schedule constraints.", "type": "boolean", "x-ignition-non-secret": false }, "serverName": { "description": "The target Gateway for remote synchronization. Must have the Historian Core module installed and allow remote storage.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "The historian on the remote gateway where data will be synchronized.", "type": "string", "x-ignition-non-secret": false }, "enableSchedule": { "description": "When enabled, data synchronization only occurs during the specified time ranges.", "type": "boolean", "x-ignition-non-secret": false }, "schedule": { "description": "Defines when synchronization is allowed using time ranges in 24-hour format. Examples: \"9:00-15:00\", \"21:00-05:00\", \"20:30-04:30\". Use comma-separation for multiple ranges.", "type": "string", "x-ignition-non-secret": false }, "syncFrequencySize": { "description": "Specifies the interval between data synchronization attempts to the remote gateway. Works in conjunction with the sync schedule when enabled.", "type": "number", "x-ignition-non-secret": false }, "syncFrequencyUnits": { "description": "The time unit used for the sync frequency.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maxBatchSize": { "description": "The maximum number of data points included in each synchronization transmission to the remote gateway.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/RemoteHistorian", "title": "RemoteHistorian", "type": "object", "properties": { "serverName": { "description": "Specifies the gateway used to connect to the remote historian.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "Specifies the target remote historian for data operations.", "type": "string", "x-ignition-non-secret": false }, "storageAllowed": { "description": "Specifies whether the provider operates in read-only or storage mode. When enabled, creates a store-forward engine to forward data to the remote gateway. When disabled, only supports historical data queries.", "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "Specifies the maximum number of data points per transmission request in storage mode. Set to 0 for unlimited batch size.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/SqlHistorian", "title": "SqlHistorian", "type": "object", "properties": { "database": { "description": "Specifies the target SQL database for storing and retrieving historical data.", "type": "string", "x-ignition-non-secret": false }, "partition": { "description": "Configures how data is segmented into time-based partitions.", "type": "object", "properties": { "enabled": { "description": "Enables time-based table partitioning to segment historical data. Partitioning improves query performance and simplifies data lifecycle management.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the time duration of each partition, using the defined time unit.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "Specifies the time unit used to define partition duration.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "optimized": { "description": "Enables data pre-processing within partitions to optimize query performance. While consuming additional storage space, this feature reduces query time by maintaining summarized data.", "type": "boolean", "x-ignition-non-secret": false }, "optimizedWindowSeconds": { "description": "Specifies the time interval used for data summarization when partition optimization is enabled.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "description": "Configures data pruning by specifying the age threshold and time units for determining when historical data becomes eligible for deletion at the partition level.", "type": "object", "properties": { "enabled": { "description": "Enables periodic pruning of older partitions.", "type": "boolean", "x-ignition-non-secret": false }, "age": { "description": "Specifies the age threshold for data retention.", "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "description": "Specifies the time unit used for the data retention age threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "trackSce": { "description": "Controls quality validation for calculated values based on tag group execution status. When enabled, values are marked as bad quality if calculated outside their tag group's execution period. When disabled, values inherit the tag's latest quality state.", "type": "boolean", "x-ignition-non-secret": false }, "staleMultiplier": { "description": "Defines the staleness threshold as a multiple of the tag group execution rate. Values are marked as bad quality when the time since last recorded execution exceeds this threshold.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/WideDbHistorian", "title": "WideDbHistorian", "type": "object", "properties": { "datasource": { "description": "Specifies the target SQL database for querying historical data.", "type": "string", "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CoreHistorian", "CsvHistorian", "HistorySplitter", "InternalHistorian", "RemoteHistorian", "SimulatorHistorian", "SqlHistorian", "WideDbHistorian" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.historian/historian-provider/CoreHistorian", "title": "CoreHistorian", "type": "object", "properties": { "partitionInterval": { "description": "The partition interval used when creating tables.", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "dataDeduplication": { "description": "When deduplication is enabled, incoming data with matching keys will update existing entries rather than create new ones, which helps maintain data integrity by allowing corrected data to replace erroneous entries.", "type": "boolean", "x-ignition-non-secret": false }, "maintenanceSettings": { "description": "Specifies the maintenance settings for handling data that exceeds the retention limit.", "type": "object", "properties": { "strategy": { "description": "Determines whether older data is archived to a target location or permanently deleted.", "type": "string", "enum": [ "NONE", "ARCHIVE", "PRUNE" ], "x-ignition-non-secret": false }, "directory": { "description": "Specifies the target directory path where data will be archived when maintenance mode is set to ARCHIVE. Must be a valid, writable directory location.", "type": "string", "x-ignition-non-secret": false }, "maintenanceAgeUnits": { "description": "\u00bfCoreHistorianSettings.MaintenanceAgeUnit.Description?", "type": "string", "enum": [ "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maintenanceAge": { "description": "Specifies the age threshold for data maintenance.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/CsvHistorian", "title": "CsvHistorian", "type": "object", "properties": { "filePath": { "description": "Specifies the CSV file path. Required format: timestamp column followed by value columns, with tag names defined in the header row.", "type": "string", "x-ignition-non-secret": false }, "relativeTimestamps": { "description": "When enabled, treats the first timestamp as a reference point, interpreting subsequent timestamps as relative offsets from this initial time.", "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/HistorySplitter", "title": "HistorySplitter", "type": "object", "properties": { "primaryHistorian": { "description": "The primary historian for data storage and queries. Serves as the default query source unless limited by time constraints or when unavailable.", "type": "string", "x-ignition-non-secret": false }, "secondaryHistorian": { "description": "The secondary historian for data storage, handling queries when the primary is unavailable or when queries exceed the configured time limit.", "type": "string", "x-ignition-non-secret": false }, "queryLimit": { "description": "Controls whether queries are routed based on time constraints.", "type": "object", "properties": { "enabled": { "description": "If enabled, older queries are automatically directed to the secondary historian.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how far back in time queries will be handled by the primary historian before routing to the secondary historian.", "type": "number", "x-ignition-non-secret": false }, "units": { "description": "The time unit used for the query routing threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/InternalHistorian", "title": "InternalHistorian", "type": "object", "properties": { "timeLimit": { "description": "Controls whether data is retained based on age.", "type": "object", "properties": { "enabled": { "description": "If enabled, older data is removed to maintain the specified time limit.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies how long data should be retained before removal.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "The time unit used for the storage time limit.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pointLimit": { "description": "Controls whether data is limited by the total number of stored points.", "type": "object", "properties": { "enabled": { "description": "If enabled, oldest points are removed when limit is exceeded.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the maximum number of data points to retain in storage.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "remoteSync": { "description": "Configures real-time data synchronization to a remote gateway historian.", "type": "object", "properties": { "enabled": { "description": "If enabled, historical data is synchronized based on the specified frequency, batch size, and optional schedule constraints.", "type": "boolean", "x-ignition-non-secret": false }, "serverName": { "description": "The target Gateway for remote synchronization. Must have the Historian Core module installed and allow remote storage.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "The historian on the remote gateway where data will be synchronized.", "type": "string", "x-ignition-non-secret": false }, "enableSchedule": { "description": "When enabled, data synchronization only occurs during the specified time ranges.", "type": "boolean", "x-ignition-non-secret": false }, "schedule": { "description": "Defines when synchronization is allowed using time ranges in 24-hour format. Examples: \"9:00-15:00\", \"21:00-05:00\", \"20:30-04:30\". Use comma-separation for multiple ranges.", "type": "string", "x-ignition-non-secret": false }, "syncFrequencySize": { "description": "Specifies the interval between data synchronization attempts to the remote gateway. Works in conjunction with the sync schedule when enabled.", "type": "number", "x-ignition-non-secret": false }, "syncFrequencyUnits": { "description": "The time unit used for the sync frequency.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "maxBatchSize": { "description": "The maximum number of data points included in each synchronization transmission to the remote gateway.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/RemoteHistorian", "title": "RemoteHistorian", "type": "object", "properties": { "serverName": { "description": "Specifies the gateway used to connect to the remote historian.", "type": "string", "x-ignition-non-secret": false }, "historianName": { "description": "Specifies the target remote historian for data operations.", "type": "string", "x-ignition-non-secret": false }, "storageAllowed": { "description": "Specifies whether the provider operates in read-only or storage mode. When enabled, creates a store-forward engine to forward data to the remote gateway. When disabled, only supports historical data queries.", "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "Specifies the maximum number of data points per transmission request in storage mode. Set to 0 for unlimited batch size.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/SqlHistorian", "title": "SqlHistorian", "type": "object", "properties": { "database": { "description": "Specifies the target SQL database for storing and retrieving historical data.", "type": "string", "x-ignition-non-secret": false }, "partition": { "description": "Configures how data is segmented into time-based partitions.", "type": "object", "properties": { "enabled": { "description": "Enables time-based table partitioning to segment historical data. Partitioning improves query performance and simplifies data lifecycle management.", "type": "boolean", "x-ignition-non-secret": false }, "size": { "description": "Specifies the time duration of each partition, using the defined time unit.", "type": "number", "x-ignition-non-secret": false }, "sizeUnits": { "description": "Specifies the time unit used to define partition duration.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false }, "optimized": { "description": "Enables data pre-processing within partitions to optimize query performance. While consuming additional storage space, this feature reduces query time by maintaining summarized data.", "type": "boolean", "x-ignition-non-secret": false }, "optimizedWindowSeconds": { "description": "Specifies the time interval used for data summarization when partition optimization is enabled.", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "description": "Configures data pruning by specifying the age threshold and time units for determining when historical data becomes eligible for deletion at the partition level.", "type": "object", "properties": { "enabled": { "description": "Enables periodic pruning of older partitions.", "type": "boolean", "x-ignition-non-secret": false }, "age": { "description": "Specifies the age threshold for data retention.", "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "description": "Specifies the time unit used for the data retention age threshold.", "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "trackSce": { "description": "Controls quality validation for calculated values based on tag group execution status. When enabled, values are marked as bad quality if calculated outside their tag group's execution period. When disabled, values inherit the tag's latest quality state.", "type": "boolean", "x-ignition-non-secret": false }, "staleMultiplier": { "description": "Defines the staleness threshold as a multiple of the tag group execution rate. Values are marked as bad quality when the time since last recorded execution exceeds this threshold.", "type": "number", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.historian/historian-provider/WideDbHistorian", "title": "WideDbHistorian", "type": "object", "properties": { "datasource": { "description": "Specifies the target SQL database for querying historical data.", "type": "string", "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "metrics": { "type": "object", "description": "The metrics of the resource instance.", "properties": { "query": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "query.throughput.actual": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "query.throughput.projected": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "storage": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "storage.throughput.actual.success": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "storage.throughput.actual.failure": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "storage.throughput.projected": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig": { "get": { "tags": [ "local-devices" ], "summary": "List Local Devices Resources", "description": "List all Local Devices resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "ipConnectivity": { "type": "object", "properties": { "bindAddress": { "type": "string", "x-ignition-non-secret": false }, "bindPort": { "type": "number", "x-ignition-non-secret": false }, "broadcastAddress": { "type": "string", "x-ignition-non-secret": false }, "networkPrefixLength": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "bacnetConnectivity": { "type": "object", "properties": { "deviceNumber": { "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "broadcastManagement": { "type": "object", "properties": { "foreignDeviceRegistrationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "backupDeviceNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "ipConnectivity": { "type": "object", "properties": { "bindAddress": { "type": "string", "x-ignition-non-secret": false }, "bindPort": { "type": "number", "x-ignition-non-secret": false }, "broadcastAddress": { "type": "string", "x-ignition-non-secret": false }, "networkPrefixLength": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "bacnetConnectivity": { "type": "object", "properties": { "deviceNumber": { "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "broadcastManagement": { "type": "object", "properties": { "foreignDeviceRegistrationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "backupDeviceNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.opcua/device": { "get": { "tags": [ "device" ], "summary": "List Devices Resources", "description": "List all Devices resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CompactLogix", "ControlLogix", "DairyDemoSimulator", "Dnp3Driver", "LogixDriver", "MicroLogix", "ModbusRtu", "ModbusRtuOverTcp", "ModbusTcp", "PLC5", "ProgrammableSimulatorDevice", "S71200", "S71500", "S7300", "S7400", "SLC", "SLCSimulator", "Simulator", "TCPDriver", "UDPDriver", "com.inductiveautomation.BacnetIpDeviceType", "com.inductiveautomation.FinsTcpDeviceType", "com.inductiveautomation.FinsUdpDeviceType", "com.inductiveautomation.Micro800DeviceType", "com.inductiveautomation.MitsubishiTcpDeviceType", "com.inductiveautomation.ignition.siemens", "com.inductiveautomation.omron.NjDriver" ] }, "browsePath": { "type": "string", "x-ignition-non-secret": false }, "rolePermissionMappings": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.opcua/device/CompactLogix", "title": "CompactLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ControlLogix", "title": "ControlLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/Dnp3Driver", "title": "Dnp3Driver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "sourceAddress": { "type": "number", "x-ignition-non-secret": false }, "destinationAddress": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "integrityPollInterval": { "type": "number", "x-ignition-non-secret": false }, "directOperateEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "unsolicitedMessagingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxMessageFragmentSize": { "type": "number", "x-ignition-non-secret": false }, "retries": { "type": "number", "x-ignition-non-secret": false }, "timeSynchronizationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "implementationLevel": { "type": "string", "enum": [ "UNKNOWN", "ONE", "TWO", "THREE", "FOUR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "defaults": { "type": "object", "properties": { "analogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenAnalogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "analogOutput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "counter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenCounter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "doubleBitBinaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryOutput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/LogixDriver", "title": "LogixDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "default": 44818, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Max amount of time to wait, in milliseconds, for responses from the processor.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "connectionPath": { "description": "Optionally, the connection path to the processor. If specified, the slot number setting is ignored, so be sure to terminate the path with backplane and slot number.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Connection Path" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "automaticRebrowseEnabled": { "description": "Monitor for tag additions and UDT changes and automatically initiate a re-browse when detected. If this is disabled tags will only be browsed when connecting and reconnecting.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Automatic Rebrowse" }, "type": "boolean", "x-ignition-non-secret": false }, "identityRequestFrequency": { "description": "Frequency, in milliseconds, that the request to read CIP Identity Object attributes occurs at.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Identity Request Frequency *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionSize": { "description": "The CIP connection size to use during Forward Open requests.", "default": 500, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "description": "Target timeout, in milliseconds, for CIP connections and RPI.", "default": 16000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in which the processor resides. If not in a rack, usually 0.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Controls both the max number of concurrent unconnected requests and the max number of concurrent connected requests (and therefore CIP connections) allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "identityRequestFrequency", "cipConnectionSize", "cipConnectionTimeout", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/MicroLogix", "title": "MicroLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtu", "title": "ModbusRtu", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "serialPort": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Serial Port *" }, "type": "string", "x-ignition-non-secret": false }, "bitRate": { "default": "BitRate_115200", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Bit Rate" }, "type": "string", "enum": [ "BitRate_110", "BitRate_150", "BitRate_300", "BitRate_600", "BitRate_1200", "BitRate_2400", "BitRate_4800", "BitRate_9600", "BitRate_19200", "BitRate_38400", "BitRate_57600", "BitRate_115200", "BitRate_230400", "BitRate_460800", "BitRate_921600" ], "x-ignition-non-secret": false }, "dataBits": { "default": "DataBits_8", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Data Bits" }, "type": "string", "enum": [ "DataBits_5", "DataBits_6", "DataBits_7", "DataBits_8" ], "x-ignition-non-secret": false }, "parity": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Parity" }, "type": "string", "enum": [ "Even", "Mark", "None", "Odd", "Space" ], "x-ignition-non-secret": false }, "stopBits": { "default": "StopBits_1", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Stop Bits" }, "type": "string", "enum": [ "StopBits_1", "StopBits_2" ], "x-ignition-non-secret": false }, "handshake": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Handshake" }, "type": "string", "enum": [ "None", "XonXoff", "CtsRts", "DsrDtr" ], "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "rs485Mode": { "description": "Enable if using RS-485 instead of RS-232.", "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "RS-485 Mode" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "serialPort", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtuOverTcp", "title": "ModbusRtuOverTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusTcp", "title": "ModbusTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/PLC5", "title": "PLC5", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ProgrammableSimulatorDevice", "title": "ProgrammableSimulatorDevice", "type": "object", "properties": { "repeat": { "type": "boolean", "x-ignition-non-secret": false }, "timeIntervalRate": { "type": "number", "x-ignition-non-secret": false }, "legacyMode": { "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71200", "title": "S71200", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71500", "title": "S71500", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7300", "title": "S7300", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7400", "title": "S7400", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/SLC", "title": "SLC", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/TCPDriver", "title": "TCPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false }, "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "connectTimeout": { "description": "The timeout, in milliseconds, when opening a socket connection to a remote host. Set to 0 to disable.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Connect Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "inactivityTimeout": { "description": "The number of milliseconds without receiving data from the source before a disconnect/reconnect is made. Set to 0 to disable.", "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Inactivity Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "ports", "address", "connectTimeout", "inactivityTimeout" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "write": { "type": "object", "properties": { "enabled": { "description": "Enable writeback capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "WRITING", "label": "Writeback Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "delimiter": { "description": "The delimiter expected by the device signaling the end of an incoming message.", "x-form": { "fieldType": "TEXT", "category": "WRITING", "label": "Writeback Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Duration, in milliseconds, to wait for writes to complete before returning.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "WRITING", "label": "Write Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "timeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/UDPDriver", "title": "UDPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "address", "ports" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "udp": { "type": "object", "properties": { "bufferSize": { "description": "The size of the message buffer in bytes.", "default": 4096, "x-form": { "fieldType": "NUMBER", "category": "UDP", "label": "Message Buffer Size" }, "type": "number", "x-ignition-non-secret": false }, "multicast": { "description": "Enable multicast capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "UDP", "label": "Multicast" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.BacnetIpDeviceType", "title": "com.inductiveautomation.BacnetIpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "localDevice": { "description": "The name of the local BACnet device instance that will be used when communicating with the remote device.", "x-form": { "fieldType": "REFERENCE", "category": "CONNECTIVITY", "label": "Local Device *", "referenceType": "com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig" }, "type": "string", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the remote device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port that the remote device is listening on.", "default": 47808, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteDeviceNumber": { "description": "The instance number/id of the remote device.", "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Device Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "localDevice", "remoteAddress", "remotePort", "remoteDeviceNumber" ], "x-ignition-non-secret": false }, "cov": { "type": "object", "properties": { "enabled": { "description": "If true a COV subscription is used for properties that support it. If false all properties are polled.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "COV Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "heartbeatInterval": { "description": "Interval, in seconds, between reading the System_Status property of the Device object as a heartbeat. If 3 consecutive attempts fail all COV items will be marked with uncertain quality.", "default": 5, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Heartbeat Interval" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionLifetime": { "description": "Lifetime, in seconds, of COV subscriptions. Use 0 for indefinite. When non-zero COV subscriptions are renewed at a rate of 75% of the lifetime.", "default": 900, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Lifetime" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionRetryInterval": { "description": "Interval, in seconds, to attempt recreating COV subscriptions that previously failed to be created or renewed. Use 0 to have failed subscription items remain polled.", "default": 120, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Retry Interval" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "confirmedNotificationsEnabled": { "description": "If true COV subscriptions use confirmed notifications. If false COV subscriptions use unconfirmed notifications.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "Confirmed Notifications Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "discoveryTimeout": { "description": "Duration, in seconds, to wait for the remote device discovery process to complete.", "default": 5, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Discovery Timeout" }, "type": "number", "x-ignition-non-secret": false }, "writePriority": { "description": "The priority to use when writing to commandable properties.", "default": 8, "minimum": 1, "maximum": 16, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Write Priority" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsTcpDeviceType", "title": "com.inductiveautomation.FinsTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname or IP address of the target device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsUdpDeviceType", "title": "com.inductiveautomation.FinsUdpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "bindAddress": { "description": "The hostname or IP address of the Gateway.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Bind Address *" }, "type": "string", "x-ignition-non-secret": false }, "bindPort": { "description": "The port you wish to create a UDP connection on for the Gateway.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Bind Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port your Omron device is listening on.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "bindAddress", "bindPort", "remoteAddress", "remotePort", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.Micro800DeviceType", "title": "com.inductiveautomation.Micro800DeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "writePriorityRatio": { "type": "number", "x-ignition-non-secret": false }, "autoRebrowseEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "cipConnectionSize": { "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.MitsubishiTcpDeviceType", "title": "com.inductiveautomation.MitsubishiTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The IP Address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 1025, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "series": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": "iQR", "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Series" }, "type": "string", "enum": [ "iQR", "iQF", "Q", "L", "F" ], "x-ignition-non-secret": false }, "pcNumber": { "description": "The network module station number of an access target.", "default": 255, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "PC Number *" }, "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "description": "The network number of an access target.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Network Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationIoModuleNumber": { "description": "The start input/output number of a multi-drop connection source module, or the CPU module of a multiple CPU system.", "default": 1023, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module I/O Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationModuleStationNumber": { "description": "The station number of an access target module when accessing a multi-drop connection station.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module Station Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pcNumber", "networkNumber", "destinationIoModuleNumber", "destinationModuleStationNumber" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations. Increasing the max gap size will reduce the number requests but increase the amount of data requested.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request when an abundance of both types are queued up for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.ignition.siemens", "title": "com.inductiveautomation.ignition.siemens", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 102, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "Maximum amount of time to wait for a response in milliseconds.", "default": 30000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "deviceType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Device Type *" }, "type": "string", "enum": [ "S7_300", "S7_400", "S7_1200", "S7_1500" ], "x-ignition-non-secret": false }, "addressType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Address Type *" }, "type": "string", "enum": [ "ABSOLUTE", "SYMBOLIC" ], "x-ignition-non-secret": false }, "rack": { "default": 0, "minimum": 0, "maximum": 7, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Rack Number *" }, "type": "number", "x-ignition-non-secret": false }, "slot": { "default": 0, "minimum": 0, "maximum": 31, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "deviceType", "addressType", "rack", "slot" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "optimizeWrites": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Optimize Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "forceSecureConnection": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Force Secure Connection" }, "type": "boolean", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "ADVANCED SETTINGS", "label": "Password" } } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.omron.NjDriver", "title": "com.inductiveautomation.omron.NjDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectionSize": { "description": "The CIP connection size to use.", "default": 1994, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "dateTimeOffsetHours": { "description": "Offset in hours for Date/Time values.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Date/Time Offset *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in the backplane in which the CPU is located.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "The number of concurrently issued requests allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Concurrency *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "connectionSize", "dateTimeOffsetHours", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "CompactLogix", "ControlLogix", "DairyDemoSimulator", "Dnp3Driver", "LogixDriver", "MicroLogix", "ModbusRtu", "ModbusRtuOverTcp", "ModbusTcp", "PLC5", "ProgrammableSimulatorDevice", "S71200", "S71500", "S7300", "S7400", "SLC", "SLCSimulator", "Simulator", "TCPDriver", "UDPDriver", "com.inductiveautomation.BacnetIpDeviceType", "com.inductiveautomation.FinsTcpDeviceType", "com.inductiveautomation.FinsUdpDeviceType", "com.inductiveautomation.Micro800DeviceType", "com.inductiveautomation.MitsubishiTcpDeviceType", "com.inductiveautomation.ignition.siemens", "com.inductiveautomation.omron.NjDriver" ] }, "browsePath": { "type": "string", "x-ignition-non-secret": false }, "rolePermissionMappings": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "com.inductiveautomation.opcua/device/CompactLogix", "title": "CompactLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ControlLogix", "title": "ControlLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableAutomaticBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "showStringArrays": { "type": "boolean", "x-ignition-non-secret": false }, "statusPollRate": { "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/Dnp3Driver", "title": "Dnp3Driver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "sourceAddress": { "type": "number", "x-ignition-non-secret": false }, "destinationAddress": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "integrityPollInterval": { "type": "number", "x-ignition-non-secret": false }, "directOperateEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "unsolicitedMessagingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxMessageFragmentSize": { "type": "number", "x-ignition-non-secret": false }, "retries": { "type": "number", "x-ignition-non-secret": false }, "timeSynchronizationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "implementationLevel": { "type": "string", "enum": [ "UNKNOWN", "ONE", "TWO", "THREE", "FOUR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "defaults": { "type": "object", "properties": { "analogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenAnalogInput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "analogOutput": { "type": "string", "enum": [ "INTEGER", "SHORT", "FLOAT", "DOUBLE", "VARIATION_0" ], "x-ignition-non-secret": false }, "counter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "frozenCounter": { "type": "string", "enum": [ "INTEGER", "SHORT", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "doubleBitBinaryInput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false }, "binaryOutput": { "type": "string", "enum": [ "PACKED", "WITH_FLAGS", "VARIATION_0" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/LogixDriver", "title": "LogixDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "default": 44818, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Max amount of time to wait, in milliseconds, for responses from the processor.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "connectionPath": { "description": "Optionally, the connection path to the processor. If specified, the slot number setting is ignored, so be sure to terminate the path with backplane and slot number.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Connection Path" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "automaticRebrowseEnabled": { "description": "Monitor for tag additions and UDT changes and automatically initiate a re-browse when detected. If this is disabled tags will only be browsed when connecting and reconnecting.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Automatic Rebrowse" }, "type": "boolean", "x-ignition-non-secret": false }, "identityRequestFrequency": { "description": "Frequency, in milliseconds, that the request to read CIP Identity Object attributes occurs at.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Identity Request Frequency *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionSize": { "description": "The CIP connection size to use during Forward Open requests.", "default": 500, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "description": "Target timeout, in milliseconds, for CIP connections and RPI.", "default": 16000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "CIP Connection Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in which the processor resides. If not in a rack, usually 0.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Controls both the max number of concurrent unconnected requests and the max number of concurrent connected requests (and therefore CIP connections) allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "identityRequestFrequency", "cipConnectionSize", "cipConnectionTimeout", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/MicroLogix", "title": "MicroLogix", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtu", "title": "ModbusRtu", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "serialPort": { "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Serial Port *" }, "type": "string", "x-ignition-non-secret": false }, "bitRate": { "default": "BitRate_115200", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Bit Rate" }, "type": "string", "enum": [ "BitRate_110", "BitRate_150", "BitRate_300", "BitRate_600", "BitRate_1200", "BitRate_2400", "BitRate_4800", "BitRate_9600", "BitRate_19200", "BitRate_38400", "BitRate_57600", "BitRate_115200", "BitRate_230400", "BitRate_460800", "BitRate_921600" ], "x-ignition-non-secret": false }, "dataBits": { "default": "DataBits_8", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Data Bits" }, "type": "string", "enum": [ "DataBits_5", "DataBits_6", "DataBits_7", "DataBits_8" ], "x-ignition-non-secret": false }, "parity": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Parity" }, "type": "string", "enum": [ "Even", "Mark", "None", "Odd", "Space" ], "x-ignition-non-secret": false }, "stopBits": { "default": "StopBits_1", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Stop Bits" }, "type": "string", "enum": [ "StopBits_1", "StopBits_2" ], "x-ignition-non-secret": false }, "handshake": { "default": "None", "x-form": { "fieldType": "SELECT", "category": "CONNECTIVITY", "label": "Handshake" }, "type": "string", "enum": [ "None", "XonXoff", "CtsRts", "DsrDtr" ], "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "rs485Mode": { "description": "Enable if using RS-485 instead of RS-232.", "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "RS-485 Mode" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "serialPort", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusRtuOverTcp", "title": "ModbusRtuOverTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ModbusTcp", "title": "ModbusTcp", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the Modbus device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 502, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "communicationTimeout": { "description": "Maximum amount of time to wait for a response.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Communication Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "communicationTimeout" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxHoldingRegistersPerRequest": { "description": "Maximum number of Holding Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Holding Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxInputRegistersPerRequest": { "description": "Maximum number of Input Registers allowed per read request.", "default": 125, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Input Registers Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxCoilsPerRequest": { "description": "Maximum number of Coils allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Coils Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "maxDiscreteInputsPerRequest": { "description": "Maximum number of Discrete Inputs allowed per read request.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Discrete Inputs Per Request *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "Number of concurrent requests allowed.", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "spanGaps": { "description": "Whether or not to span address gaps when optimizing requests, reducing the number of requests but increasing the amount of data requested at once.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "REQUEST OPTIMIZATION", "label": "Span Gaps" }, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "maxHoldingRegistersPerRequest", "maxInputRegistersPerRequest", "maxCoilsPerRequest", "maxDiscreteInputsPerRequest", "concurrentRequests" ], "x-ignition-non-secret": false }, "writeRequests": { "type": "object", "properties": { "writeMultipleRegistersRequestAllowed": { "description": "Enable or disable Modbus function code 0x10, Write Multiple Registers. Some devices may not support this function code. Caution, disabling this option will break the ability to write 32-bit and String values correctly to registers.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "forceMultipleRegisterWritesEnabled": { "description": "Force the use of Modbus function code 0x10, Write Multiple Registers, on write requests.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Force Multiple Register Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "writeMultipleCoilsRequestAllowed": { "description": "Enable or disable Modbus function code 0x0F, Write Multiple Coils. Some devices may not support this function code.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "WRITE REQUESTS", "label": "Allow Write Multiple Coils Request" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "readRequests": { "type": "object", "properties": { "readMultipleRegistersRequestAllowed": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Registers Request" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleCoilsAllowed": { "description": "If disabled all coils will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Coils" }, "type": "boolean", "x-ignition-non-secret": false }, "readMultipleDiscreteInputsAllowed": { "description": "If disabled all discrete inputs will be read in individual read requests. Disable with caution.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "READ REQUESTS", "label": "Allow Read Multiple Discrete Inputs" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "reconnectAfterConsecutiveTimeouts": { "description": "Force a reconnect after 3 consecutive timeouts.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reconnect After Consecutive Timeouts" }, "type": "boolean", "x-ignition-non-secret": false }, "reverseWordOrder": { "description": "If true, the low word comes before the high word.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Reverse Word Order" }, "type": "boolean", "x-ignition-non-secret": false }, "zeroBasedAddressing": { "description": "If true, the address range for each area starts at 0. If false, the range starts at 1.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Zero-based Addressing" }, "type": "boolean", "x-ignition-non-secret": false }, "maxRetryCount": { "description": "Maximum number of times to retry a read request after receiving a response containing an allowable Exception Code (GatewayPathUnavailable, GatewayTargetDeviceFailToRespond, SlaveDeviceBusy, or SlaveDeviceFailure).", "default": 1, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Retry Count" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "stringHandling": { "type": "object", "properties": { "reverseByteOrder": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Reverse String Byte Order" }, "type": "boolean", "x-ignition-non-secret": false }, "rightJustifyStrings": { "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Right Justify Strings" }, "type": "boolean", "x-ignition-non-secret": false }, "readRawStrings": { "description": "Whether or not to read the entire length of a string, ignoring any null bytes encountered.", "x-form": { "fieldType": "CHECKBOX", "category": "STRING HANDLING", "label": "Read Raw Strings" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/PLC5", "title": "PLC5", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/ProgrammableSimulatorDevice", "title": "ProgrammableSimulatorDevice", "type": "object", "properties": { "repeat": { "type": "boolean", "x-ignition-non-secret": false }, "timeIntervalRate": { "type": "number", "x-ignition-non-secret": false }, "legacyMode": { "type": "boolean", "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71200", "title": "S71200", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S71500", "title": "S71500", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7300", "title": "S7300", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/S7400", "title": "S7400", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "pduSize": { "type": "number", "x-ignition-non-secret": false }, "rackNumber": { "type": "number", "x-ignition-non-secret": false }, "cpuSlotNumber": { "type": "number", "x-ignition-non-secret": false }, "reconnectAfterConsecutiveTimeouts": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/SLC", "title": "SLC", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "disableProcessorBrowse": { "type": "boolean", "x-ignition-non-secret": false }, "useZeroTnsConnections": { "type": "boolean", "x-ignition-non-secret": false }, "browseCacheTimeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/TCPDriver", "title": "TCPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false }, "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "connectTimeout": { "description": "The timeout, in milliseconds, when opening a socket connection to a remote host. Set to 0 to disable.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Connect Timeout *" }, "type": "number", "x-ignition-non-secret": false }, "inactivityTimeout": { "description": "The number of milliseconds without receiving data from the source before a disconnect/reconnect is made. Set to 0 to disable.", "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Inactivity Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "ports", "address", "connectTimeout", "inactivityTimeout" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "write": { "type": "object", "properties": { "enabled": { "description": "Enable writeback capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "WRITING", "label": "Writeback Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "delimiter": { "description": "The delimiter expected by the device signaling the end of an incoming message.", "x-form": { "fieldType": "TEXT", "category": "WRITING", "label": "Writeback Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "Duration, in milliseconds, to wait for writes to complete before returning.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "WRITING", "label": "Write Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "timeout" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/UDPDriver", "title": "UDPDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "address": { "description": "The IP address to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Address *" }, "type": "string", "x-ignition-non-secret": false }, "ports": { "description": "The port(s) to connect to.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Port(s) *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "address", "ports" ], "x-ignition-non-secret": false }, "message": { "type": "object", "properties": { "messageDelimiterType": { "description": "The method used to determine how much or what data constitutes a full message.", "default": "PacketBased", "x-form": { "fieldType": "SELECT", "category": "MESSAGE", "label": "Message Delimiter Type" }, "type": "string", "enum": [ "PacketBased", "CharacterBased", "FixedSize" ], "x-ignition-non-secret": false }, "messageDelimiter": { "description": "The character to use for character-based delimiters OR the size to use for a fixed-size delimiter, depending on the chosen Message Delimiter Type.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Message Delimiter" }, "type": "string", "x-ignition-non-secret": false }, "fieldCount": { "description": "The number of fields in a message.", "x-form": { "fieldType": "NUMBER", "category": "MESSAGE", "label": "Field Count" }, "type": "number", "x-ignition-non-secret": false }, "fieldDelimiter": { "description": "The character(s) that are to be used as a field delimiter.", "x-form": { "fieldType": "TEXT", "category": "MESSAGE", "label": "Field Delimiter" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "udp": { "type": "object", "properties": { "bufferSize": { "description": "The size of the message buffer in bytes.", "default": 4096, "x-form": { "fieldType": "NUMBER", "category": "UDP", "label": "Message Buffer Size" }, "type": "number", "x-ignition-non-secret": false }, "multicast": { "description": "Enable multicast capabilities for the device.", "x-form": { "fieldType": "CHECKBOX", "category": "UDP", "label": "Multicast" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.BacnetIpDeviceType", "title": "com.inductiveautomation.BacnetIpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "localDevice": { "description": "The name of the local BACnet device instance that will be used when communicating with the remote device.", "x-form": { "fieldType": "REFERENCE", "category": "CONNECTIVITY", "label": "Local Device *", "referenceType": "com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig" }, "type": "string", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the remote device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port that the remote device is listening on.", "default": 47808, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteDeviceNumber": { "description": "The instance number/id of the remote device.", "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Device Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "localDevice", "remoteAddress", "remotePort", "remoteDeviceNumber" ], "x-ignition-non-secret": false }, "cov": { "type": "object", "properties": { "enabled": { "description": "If true a COV subscription is used for properties that support it. If false all properties are polled.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "COV Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "heartbeatInterval": { "description": "Interval, in seconds, between reading the System_Status property of the Device object as a heartbeat. If 3 consecutive attempts fail all COV items will be marked with uncertain quality.", "default": 5, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Heartbeat Interval" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionLifetime": { "description": "Lifetime, in seconds, of COV subscriptions. Use 0 for indefinite. When non-zero COV subscriptions are renewed at a rate of 75% of the lifetime.", "default": 900, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Lifetime" }, "type": "number", "x-ignition-non-secret": false }, "subscriptionRetryInterval": { "description": "Interval, in seconds, to attempt recreating COV subscriptions that previously failed to be created or renewed. Use 0 to have failed subscription items remain polled.", "default": 120, "minimum": 0, "maximum": 86400, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "COV Subscription Retry Interval" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "confirmedNotificationsEnabled": { "description": "If true COV subscriptions use confirmed notifications. If false COV subscriptions use unconfirmed notifications.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "CONNECTIVITY", "label": "Confirmed Notifications Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "discoveryTimeout": { "description": "Duration, in seconds, to wait for the remote device discovery process to complete.", "default": 5, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Discovery Timeout" }, "type": "number", "x-ignition-non-secret": false }, "writePriority": { "description": "The priority to use when writing to commandable properties.", "default": 8, "minimum": 1, "maximum": 16, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Write Priority" }, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsTcpDeviceType", "title": "com.inductiveautomation.FinsTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname or IP address of the target device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.FinsUdpDeviceType", "title": "com.inductiveautomation.FinsUdpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "bindAddress": { "description": "The hostname or IP address of the Gateway.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Bind Address *" }, "type": "string", "x-ignition-non-secret": false }, "bindPort": { "description": "The port you wish to create a UDP connection on for the Gateway.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Bind Port *" }, "type": "number", "x-ignition-non-secret": false }, "remoteAddress": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Remote Address *" }, "type": "string", "x-ignition-non-secret": false }, "remotePort": { "description": "The port your Omron device is listening on.", "default": 9600, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Remote Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "bindAddress", "bindPort", "remoteAddress", "remotePort", "timeout" ], "x-ignition-non-secret": false }, "finsSettings": { "type": "object", "properties": { "sourceNetwork": { "description": "The address number of the source network (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Network *" }, "type": "number", "x-ignition-non-secret": false }, "sourceNode": { "description": "The number of the source node (the Ignition Gateway), typically the last octet of the IP address.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Node *" }, "type": "number", "x-ignition-non-secret": false }, "sourceUnit": { "description": "The unit number of the source device (the Ignition Gateway).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Source Unit *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNetwork": { "description": "The address number of the destination network (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Network *" }, "type": "number", "x-ignition-non-secret": false }, "destinationNode": { "description": "The number of the destination node (the FINS device), typically the last octet of the IP address and set via dials on the front of the device.", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Node *" }, "type": "number", "x-ignition-non-secret": false }, "destinationUnit": { "description": "The unit number of the destination device (the FINS device).", "x-form": { "fieldType": "NUMBER", "category": "FINS SETTINGS", "label": "FINS Destination Unit *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "sourceNetwork", "sourceNode", "sourceUnit", "destinationNetwork", "destinationNode", "destinationUnit" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "concurrentRequests": { "description": "The number of requests that Ignition will try to send to the device at the same time.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Concurrent Requests *" }, "type": "number", "x-ignition-non-secret": false }, "maxRequestSize": { "description": "The maximum size of a request in bytes.", "default": 240, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Request Size *" }, "type": "number", "x-ignition-non-secret": false }, "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations.", "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request, when an abundance of both are queued for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "concurrentRequests", "maxRequestSize", "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.Micro800DeviceType", "title": "com.inductiveautomation.Micro800DeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false }, "localAddress": { "type": "string", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "writePriorityRatio": { "type": "number", "x-ignition-non-secret": false }, "autoRebrowseEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "cipConnectionSize": { "type": "number", "x-ignition-non-secret": false }, "cipConnectionTimeout": { "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.MitsubishiTcpDeviceType", "title": "com.inductiveautomation.MitsubishiTcpDeviceType", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The IP Address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 1025, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 5000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "series": { "description": "If disabled all registers will be read in individual read requests. Disable with caution.", "default": "iQR", "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Series" }, "type": "string", "enum": [ "iQR", "iQF", "Q", "L", "F" ], "x-ignition-non-secret": false }, "pcNumber": { "description": "The network module station number of an access target.", "default": 255, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "PC Number *" }, "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "description": "The network number of an access target.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Network Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationIoModuleNumber": { "description": "The start input/output number of a multi-drop connection source module, or the CPU module of a multiple CPU system.", "default": 1023, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module I/O Number *" }, "type": "number", "x-ignition-non-secret": false }, "destinationModuleStationNumber": { "description": "The station number of an access target module when accessing a multi-drop connection station.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Request Destination Module Station Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "pcNumber", "networkNumber", "destinationIoModuleNumber", "destinationModuleStationNumber" ], "x-ignition-non-secret": false }, "requestOptimization": { "type": "object", "properties": { "maxGapSize": { "description": "The maximum address \u201cgap\u201d to span when optimizing requests to contiguous address locations. Increasing the max gap size will reduce the number requests but increase the amount of data requested.", "default": 0, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Max Gap Size *" }, "type": "number", "x-ignition-non-secret": false }, "writePriorityRatio": { "description": "The number of write requests to execute for every read request when an abundance of both types are queued up for execution.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "REQUEST OPTIMIZATION", "label": "Write Priority Ratio *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGapSize", "writePriorityRatio" ], "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.ignition.siemens", "title": "com.inductiveautomation.ignition.siemens", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "Hostname/IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port to connect to.", "default": 102, "minimum": 1, "maximum": 65535, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Port *" }, "type": "number", "x-ignition-non-secret": false }, "timeout": { "description": "Maximum amount of time to wait for a response in milliseconds.", "default": 30000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "port", "timeout" ], "x-ignition-non-secret": false }, "deviceSettings": { "type": "object", "properties": { "deviceType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Device Type *" }, "type": "string", "enum": [ "S7_300", "S7_400", "S7_1200", "S7_1500" ], "x-ignition-non-secret": false }, "addressType": { "x-form": { "fieldType": "SELECT", "category": "DEVICE SETTINGS", "label": "Address Type *" }, "type": "string", "enum": [ "ABSOLUTE", "SYMBOLIC" ], "x-ignition-non-secret": false }, "rack": { "default": 0, "minimum": 0, "maximum": 7, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Rack Number *" }, "type": "number", "x-ignition-non-secret": false }, "slot": { "default": 0, "minimum": 0, "maximum": 31, "x-form": { "fieldType": "NUMBER", "category": "DEVICE SETTINGS", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "deviceType", "addressType", "rack", "slot" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "optimizeWrites": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Optimize Writes" }, "type": "boolean", "x-ignition-non-secret": false }, "forceSecureConnection": { "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED SETTINGS", "label": "Force Secure Connection" }, "type": "boolean", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "x-form": { "fieldType": "SECRET", "category": "ADVANCED SETTINGS", "label": "Password" } } }, "x-ignition-non-secret": false } } }, { "$id": "com.inductiveautomation.opcua/device/com.inductiveautomation.omron.NjDriver", "title": "com.inductiveautomation.omron.NjDriver", "type": "object", "properties": { "connectivity": { "type": "object", "properties": { "hostname": { "description": "The hostname or IP address of the device.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "localAddress": { "description": "Address of network adapter to connect from.", "x-form": { "fieldType": "TEXT", "category": "CONNECTIVITY", "label": "Local Address" }, "type": "string", "x-ignition-non-secret": false }, "timeout": { "description": "The request timeout, specified in milliseconds.", "default": 2000, "x-form": { "fieldType": "NUMBER", "category": "CONNECTIVITY", "label": "Timeout *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "hostname", "timeout" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectionSize": { "description": "The CIP connection size to use.", "default": 1994, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Connection Size *" }, "type": "number", "x-ignition-non-secret": false }, "dateTimeOffsetHours": { "description": "Offset in hours for Date/Time values.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Date/Time Offset *" }, "type": "number", "x-ignition-non-secret": false }, "slotNumber": { "description": "The slot number in the backplane in which the CPU is located.", "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Slot Number *" }, "type": "number", "x-ignition-non-secret": false }, "concurrentRequests": { "description": "The number of concurrently issued requests allowed.", "default": 2, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Concurrency *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "connectionSize", "dateTimeOffsetHours", "slotNumber", "concurrentRequests" ], "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.perspective/fonts": { "get": { "tags": [ "config-perspective-fonts" ], "summary": "List Fonts Resources", "description": "List all Fonts resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object" }, "backupConfig": { "type": "object" }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.perspective/icons": { "get": { "tags": [ "config-perspective-icons" ], "summary": "List Icons Resources", "description": "List all Icons resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "svgFileName": { "description": "The name of the icon library SVG File. This is a required data file which must be uploaded for this icon library to be used.", "examples": [ "library.svg" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "svgFileName" ] }, "backupConfig": { "type": "object", "properties": { "svgFileName": { "description": "The name of the icon library SVG File. This is a required data file which must be uploaded for this icon library to be used.", "examples": [ "library.svg" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "svgFileName" ] }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/com.inductiveautomation.perspective/themes": { "get": { "tags": [ "config-perspective-themes" ], "summary": "List Themes Resources", "description": "List all Themes resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "entrypoint": { "description": "The entrypoint file for the theme. this is typically a css file whose name matches the theme name.", "default": "index.css", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entrypoint" ] }, "backupConfig": { "type": "object", "properties": { "entrypoint": { "description": "The entrypoint file for the theme. this is typically a css file whose name matches the theme name.", "default": "index.css", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entrypoint" ] }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/alarm-journal": { "get": { "tags": [ "alarm-journal-resources" ], "summary": "List Alarm Journal Settings Resources", "description": "List all Alarm Journal Settings resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "DATASOURCE", "LOCAL", "REMOTE" ] }, "queryOnly": { "description": "If true, this alarm journal will not be capable of storing events. Any attempt to store events will be discarded.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Query Only" }, "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/alarm-journal/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Events will be stored to this datasource.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Datasource *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "events": { "type": "object", "properties": { "minPriority": { "description": "Only events equal to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "tableName": { "description": "The table name for the core event table.", "default": "alarm_events", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "dataTableName": { "description": "The table name for event data associated with alarms.", "default": "alarm_event_data", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Event Data Table Name" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, journaled events will be stored through the store and forward system. If not enabled, they will be stored directly against the database.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/alarm-journal/LOCAL", "title": "LOCAL", "type": "object", "properties": { "events": { "type": "object", "properties": { "minPriority": { "description": "Only events to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age *" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "required": [ "age" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/alarm-journal/REMOTE", "title": "REMOTE", "type": "object", "properties": { "remoteGateway": { "type": "object", "properties": { "targetServer": { "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway Name *", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetJournal": { "x-form": { "fieldType": "TEXT", "category": "REMOTE GATEWAY", "label": "Alarm Journal *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "targetServer", "targetJournal" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "useStoreAndForward": { "description": "If enabled, alarm journal events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "other": { "type": "object", "properties": { "maxGroupSize": { "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGroupSize" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "DATASOURCE", "LOCAL", "REMOTE" ] }, "queryOnly": { "description": "If true, this alarm journal will not be capable of storing events. Any attempt to store events will be discarded.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Query Only" }, "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/alarm-journal/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Events will be stored to this datasource.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Datasource *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "events": { "type": "object", "properties": { "minPriority": { "description": "Only events equal to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "tableName": { "description": "The table name for the core event table.", "default": "alarm_events", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "dataTableName": { "description": "The table name for event data associated with alarms.", "default": "alarm_event_data", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "Event Data Table Name" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, journaled events will be stored through the store and forward system. If not enabled, they will be stored directly against the database.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/alarm-journal/LOCAL", "title": "LOCAL", "type": "object", "properties": { "events": { "type": "object", "properties": { "minPriority": { "description": "Only events to or greater than the specified priority will be stored.", "default": "Low", "x-form": { "fieldType": "SELECT", "category": "EVENTS", "label": "Minimum Priority" }, "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "storeShelvedEvents": { "description": "If enabled, events generated by 'shelved' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Shelved Events" }, "type": "boolean", "x-ignition-non-secret": false }, "storeFromEnabledChange": { "description": "If enabled, events generated by 'enabling' or 'disabling' alarms will be written to the journal system.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENTS", "label": "Store Enabled & Disabled Events" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "eventData": { "type": "object", "properties": { "staticConfig": { "description": "If selected, will store the values of static alarm configuration. That is, properties are not bound.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Config" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicConfig": { "description": "If selected, will store the values of dynamically bound alarm configuration properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Config" }, "type": "boolean", "x-ignition-non-secret": false }, "staticAssociatedData": { "description": "If selected, will store the values of non-bound associated data (user created) properties on alarm.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Static Associated Data" }, "type": "boolean", "x-ignition-non-secret": false }, "dynamicAssociatedData": { "description": "If selected, will store the values of dynamically bound associated data (user created) properties.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "EVENT DATA", "label": "Dynamic Associated Data" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "dataFilters": { "type": "object", "properties": { "sourceFilterName": { "description": "Only events matching the source will be stored. Multiple sources to match can be comma separated. Leave blank to store events from all sources.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Alarm Source" }, "type": "string", "x-ignition-non-secret": false }, "pathFilterName": { "description": "Only events matching the display path will be stored. Multiple display paths to match can be comma separated. Leave blank to store events from all display paths.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path" }, "type": "string", "x-ignition-non-secret": false }, "pathOrSourceFilterName": { "description": "Only events matching the display path, if defined, will be stored. Multiple matches can be comma separated. If no display path is defined, only events matching the source will be stored. Leave blank to store all events.", "x-form": { "fieldType": "TEXT", "category": "DATA FILTERS", "label": "Filter by Display Path or Source" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "pruning": { "type": "object", "properties": { "enabled": { "description": "Data will be deleted after the specified time period.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATA PRUNING", "label": "Enable Data Pruning" }, "type": "boolean", "x-ignition-non-secret": false }, "age": { "default": 1, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "DATA PRUNING", "label": "Prune Age *" }, "type": "number", "x-ignition-non-secret": false }, "ageUnits": { "default": "YEAR", "x-form": { "fieldType": "SELECT", "category": "DATA PRUNING", "label": "Prune Age Units" }, "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } }, "required": [ "age" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/alarm-journal/REMOTE", "title": "REMOTE", "type": "object", "properties": { "remoteGateway": { "type": "object", "properties": { "targetServer": { "x-form": { "fieldType": "REFERENCE", "category": "REMOTE GATEWAY", "label": "Gateway Name *", "referenceType": "ignition/gateway-network/gateways" }, "type": "string", "x-ignition-non-secret": false }, "targetJournal": { "x-form": { "fieldType": "TEXT", "category": "REMOTE GATEWAY", "label": "Alarm Journal *" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "targetServer", "targetJournal" ], "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "useStoreAndForward": { "description": "If enabled, alarm journal events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "other": { "type": "object", "properties": { "maxGroupSize": { "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "maxGroupSize" ], "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/api-token": { "get": { "tags": [ "config-api-token" ], "summary": "List API Token Resources", "description": "List all API Token resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic-token" ] }, "secureChannelRequired": { "type": "boolean", "title": "Secure Channel Required", "description": "Boolean indicating whether this token may only be used in secure HTTPS requests (true) or if it can be used in insecure HTTP requests (false)." }, "securityLevels": { "type": "array", "title": "Security Levels", "description": "Security levels granted to the API Token.", "items": { "$ref": "#/components/schemas/SecurityLevel" } }, "timestamp": { "type": "number", "title": "Timestamp", "description": "Number of milliseconds from 1970-01-01T00:00:00.000Z as measured in UTC until the date/time when the API token was created." } }, "required": [ "type", "secureChannelRequired", "securityLevels", "timestamp" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/api-token/basic-token", "title": "basic-token", "type": "object", "properties": { "tokenHash": { "description": "Secure digest of the API token value", "type": "string", "x-ignition-non-secret": true } }, "required": [ "tokenHash" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic-token" ] }, "secureChannelRequired": { "type": "boolean", "title": "Secure Channel Required", "description": "Boolean indicating whether this token may only be used in secure HTTPS requests (true) or if it can be used in insecure HTTP requests (false)." }, "securityLevels": { "type": "array", "title": "Security Levels", "description": "Security levels granted to the API Token.", "items": { "$ref": "#/components/schemas/SecurityLevel" } }, "timestamp": { "type": "number", "title": "Timestamp", "description": "Number of milliseconds from 1970-01-01T00:00:00.000Z as measured in UTC until the date/time when the API token was created." } }, "required": [ "type", "secureChannelRequired", "securityLevels", "timestamp" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/api-token/basic-token", "title": "basic-token", "type": "object", "properties": { "tokenHash": { "description": "Secure digest of the API token value", "type": "string", "x-ignition-non-secret": true } }, "required": [ "tokenHash" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/audit-profile": { "get": { "tags": [ "config-audit-profiles" ], "summary": "List Audit Profiles Resources", "description": "List all Audit Profiles resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "database", "edge", "local", "remote" ] }, "retentionDays": { "description": "How long (in days) should audit records be kept? If set to 0, pruning will be disabled.", "default": 90, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Retention *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/audit-profile/database", "title": "database", "type": "object", "properties": { "databaseName": { "description": "The database connection to use to store audit events.", "x-form": { "fieldType": "REFERENCE", "category": "DATABASE SETTINGS", "label": "Database *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "pruneEnabled": { "description": "If false, this audit profile will never prune records, regardless of the retention field. Otherwise, the retention field will be followed.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Pruning Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "autoCreate": { "description": "If true, the table schema specified here will be automatically verified and created if necessary.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Auto Create" }, "type": "boolean", "x-ignition-non-secret": false }, "tableName": { "description": "The name of the table to store audit events.", "default": "audit_events", "x-form": { "fieldType": "TEXT", "category": "DATABASE SETTINGS", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "keyColumn": { "description": "The column name for an auto-incrementing primary key.", "default": "audit_events_id", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Key Column" }, "type": "string", "x-ignition-non-secret": true }, "timestampColumn": { "description": "The column to store the timestamp of the audit entry. Should be a SQL \"DATETIME\" type.", "default": "event_timestamp", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Timestamp Column" }, "type": "string", "x-ignition-non-secret": false }, "actorColumn": { "description": "The column in which to store the \"actor\" (usually the user) of the event.", "default": "actor", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Column" }, "type": "string", "x-ignition-non-secret": false }, "actorHostColumn": { "description": "The column in which to store the \"actor host\" (the hostname of the user's computer) of the event.", "default": "actor_host", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Host Column" }, "type": "string", "x-ignition-non-secret": false }, "actionColumn": { "description": "The column in which to store the name of the action that occurred.", "default": "action", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Column" }, "type": "string", "x-ignition-non-secret": false }, "actionTargetColumn": { "description": "The column in which to store the target of the event's action.", "default": "action_target", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Target Column" }, "type": "string", "x-ignition-non-secret": false }, "actionValueColumn": { "description": "The column in which to store the value of the event's action.", "default": "action_value", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Value Column" }, "type": "string", "x-ignition-non-secret": false }, "statusCodeColumn": { "description": "The column in which to store the operation result status of the action.", "default": "status_code", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Status Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingSystemColumn": { "description": "The column in which to store the originating system of the event.", "default": "originating_system", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating System Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingContextColumn": { "description": "The column in which to store the originating context of the event.", "default": "originating_context", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating Context Column" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "databaseName" ] }, { "$id": "ignition/audit-profile/edge", "title": "edge", "type": "object" }, { "$id": "ignition/audit-profile/local", "title": "local", "type": "object" }, { "$id": "ignition/audit-profile/remote", "title": "remote", "type": "object", "properties": { "targetSystem": { "description": "The remote system to send audit events to over the Gateway Network.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target System *" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "description": "The audit profile on the remote system to log events into.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target Profile *" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, audit events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote Gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "The maximum number of data points that can be sent per request. This value is used in conjunction with the store and forward settings to dictate how much data is sent at once. 0=unlimited", "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "targetSystem", "targetProfile" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "database", "edge", "local", "remote" ] }, "retentionDays": { "description": "How long (in days) should audit records be kept? If set to 0, pruning will be disabled.", "default": 90, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Retention *" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/audit-profile/database", "title": "database", "type": "object", "properties": { "databaseName": { "description": "The database connection to use to store audit events.", "x-form": { "fieldType": "REFERENCE", "category": "DATABASE SETTINGS", "label": "Database *", "referenceType": "ignition/database-connection" }, "type": "string", "x-ignition-non-secret": false }, "pruneEnabled": { "description": "If false, this audit profile will never prune records, regardless of the retention field. Otherwise, the retention field will be followed.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Pruning Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "autoCreate": { "description": "If true, the table schema specified here will be automatically verified and created if necessary.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "DATABASE SETTINGS", "label": "Auto Create" }, "type": "boolean", "x-ignition-non-secret": false }, "tableName": { "description": "The name of the table to store audit events.", "default": "audit_events", "x-form": { "fieldType": "TEXT", "category": "DATABASE SETTINGS", "label": "Table Name" }, "type": "string", "x-ignition-non-secret": false }, "keyColumn": { "description": "The column name for an auto-incrementing primary key.", "default": "audit_events_id", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Key Column" }, "type": "string", "x-ignition-non-secret": true }, "timestampColumn": { "description": "The column to store the timestamp of the audit entry. Should be a SQL \"DATETIME\" type.", "default": "event_timestamp", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Timestamp Column" }, "type": "string", "x-ignition-non-secret": false }, "actorColumn": { "description": "The column in which to store the \"actor\" (usually the user) of the event.", "default": "actor", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Column" }, "type": "string", "x-ignition-non-secret": false }, "actorHostColumn": { "description": "The column in which to store the \"actor host\" (the hostname of the user's computer) of the event.", "default": "actor_host", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Actor Host Column" }, "type": "string", "x-ignition-non-secret": false }, "actionColumn": { "description": "The column in which to store the name of the action that occurred.", "default": "action", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Column" }, "type": "string", "x-ignition-non-secret": false }, "actionTargetColumn": { "description": "The column in which to store the target of the event's action.", "default": "action_target", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Target Column" }, "type": "string", "x-ignition-non-secret": false }, "actionValueColumn": { "description": "The column in which to store the value of the event's action.", "default": "action_value", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Action Value Column" }, "type": "string", "x-ignition-non-secret": false }, "statusCodeColumn": { "description": "The column in which to store the operation result status of the action.", "default": "status_code", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Status Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingSystemColumn": { "description": "The column in which to store the originating system of the event.", "default": "originating_system", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating System Column" }, "type": "string", "x-ignition-non-secret": false }, "originatingContextColumn": { "description": "The column in which to store the originating context of the event.", "default": "originating_context", "x-form": { "fieldType": "TEXT", "category": "COLUMNS", "label": "Originating Context Column" }, "type": "string", "x-ignition-non-secret": false } }, "required": [ "databaseName" ] }, { "$id": "ignition/audit-profile/edge", "title": "edge", "type": "object" }, { "$id": "ignition/audit-profile/local", "title": "local", "type": "object" }, { "$id": "ignition/audit-profile/remote", "title": "remote", "type": "object", "properties": { "targetSystem": { "description": "The remote system to send audit events to over the Gateway Network.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target System *" }, "type": "string", "x-ignition-non-secret": false }, "targetProfile": { "description": "The audit profile on the remote system to log events into.", "x-form": { "fieldType": "TEXT", "category": "REMOTE SETTINGS", "label": "Target Profile *" }, "type": "string", "x-ignition-non-secret": false }, "useStoreAndForward": { "description": "If enabled, audit events will be stored through the store and forward system. If not enabled, they will be stored directly against the remote Gateway.", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Use Store and Forward" }, "type": "boolean", "x-ignition-non-secret": false }, "maxGroupSize": { "description": "The maximum number of data points that can be sent per request. This value is used in conjunction with the store and forward settings to dictate how much data is sent at once. 0=unlimited", "default": 0, "minimum": 0, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "Max Group Size" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "targetSystem", "targetProfile" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/database-connection": { "get": { "tags": [ "config-databases" ], "summary": "List Database Connection Resources", "description": "List all Database Connection resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "driver": { "type": "string", "x-ignition-non-secret": false }, "translator": { "type": "string", "x-ignition-non-secret": false }, "includeSchemaInTableName": { "type": "boolean", "x-ignition-non-secret": false }, "connectURL": { "type": "string", "x-ignition-non-secret": false }, "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "connectionProps": { "type": "string", "x-ignition-non-secret": false }, "connectionResetParams": { "type": "string", "x-ignition-non-secret": false }, "defaultTransactionLevel": { "type": "string", "enum": [ "DEFAULT", "READ_UNCOMMITTED", "READ_COMMITTED", "READ_REPEATABLE_READ", "SERIALIZABLE" ], "x-ignition-non-secret": false }, "poolInitSize": { "type": "number", "x-ignition-non-secret": false }, "poolMaxActive": { "type": "number", "x-ignition-non-secret": false }, "poolMaxIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMinIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMaxWait": { "type": "number", "x-ignition-non-secret": false }, "validationQuery": { "type": "string", "x-ignition-non-secret": false }, "testOnBorrow": { "type": "boolean", "x-ignition-non-secret": false }, "testOnReturn": { "type": "boolean", "x-ignition-non-secret": false }, "testWhileIdle": { "type": "boolean", "x-ignition-non-secret": false }, "evictionRate": { "type": "number", "x-ignition-non-secret": false }, "evictionTests": { "type": "number", "x-ignition-non-secret": false }, "evictionTime": { "type": "number", "x-ignition-non-secret": false }, "failoverProfile": { "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "type": "string", "enum": [ "STANDARD", "STICKY" ], "x-ignition-non-secret": false }, "slowQueryLogThreshold": { "type": "number", "x-ignition-non-secret": false }, "validationSleepTime": { "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "driver": { "type": "string", "x-ignition-non-secret": false }, "translator": { "type": "string", "x-ignition-non-secret": false }, "includeSchemaInTableName": { "type": "boolean", "x-ignition-non-secret": false }, "connectURL": { "type": "string", "x-ignition-non-secret": false }, "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "connectionProps": { "type": "string", "x-ignition-non-secret": false }, "connectionResetParams": { "type": "string", "x-ignition-non-secret": false }, "defaultTransactionLevel": { "type": "string", "enum": [ "DEFAULT", "READ_UNCOMMITTED", "READ_COMMITTED", "READ_REPEATABLE_READ", "SERIALIZABLE" ], "x-ignition-non-secret": false }, "poolInitSize": { "type": "number", "x-ignition-non-secret": false }, "poolMaxActive": { "type": "number", "x-ignition-non-secret": false }, "poolMaxIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMinIdle": { "type": "number", "x-ignition-non-secret": false }, "poolMaxWait": { "type": "number", "x-ignition-non-secret": false }, "validationQuery": { "type": "string", "x-ignition-non-secret": false }, "testOnBorrow": { "type": "boolean", "x-ignition-non-secret": false }, "testOnReturn": { "type": "boolean", "x-ignition-non-secret": false }, "testWhileIdle": { "type": "boolean", "x-ignition-non-secret": false }, "evictionRate": { "type": "number", "x-ignition-non-secret": false }, "evictionTests": { "type": "number", "x-ignition-non-secret": false }, "evictionTime": { "type": "number", "x-ignition-non-secret": false }, "failoverProfile": { "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "type": "string", "enum": [ "STANDARD", "STICKY" ], "x-ignition-non-secret": false }, "slowQueryLogThreshold": { "type": "number", "x-ignition-non-secret": false }, "validationSleepTime": { "type": "number", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "metrics": { "type": "object", "description": "The metrics of the resource instance.", "properties": { "throughput": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "queries": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "rows": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "active-connections": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "active-queries": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "expensive-queries": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/database-driver": { "get": { "tags": [ "config-databases" ], "summary": "List JDBC Driver Resources", "description": "List all JDBC Driver resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "MYSQL", "POSTGRES", "MSSQL", "GENERIC", "ORACLE", "DB2", "FIREBIRD", "SQLITE" ], "x-ignition-non-secret": false }, "defaultTranslator": { "type": "string", "x-ignition-non-secret": false }, "classname": { "type": "string", "x-ignition-non-secret": false }, "urlFormat": { "type": "string", "x-ignition-non-secret": false }, "urlInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultProps": { "type": "string", "x-ignition-non-secret": false }, "defaultPropInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultValidationQuery": { "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "MYSQL", "POSTGRES", "MSSQL", "GENERIC", "ORACLE", "DB2", "FIREBIRD", "SQLITE" ], "x-ignition-non-secret": false }, "defaultTranslator": { "type": "string", "x-ignition-non-secret": false }, "classname": { "type": "string", "x-ignition-non-secret": false }, "urlFormat": { "type": "string", "x-ignition-non-secret": false }, "urlInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultProps": { "type": "string", "x-ignition-non-secret": false }, "defaultPropInstructions": { "type": "string", "x-ignition-non-secret": false }, "defaultValidationQuery": { "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/database-translator": { "get": { "tags": [ "config-databases" ], "summary": "List Database Translator Resources", "description": "List all Database Translator resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "createTable": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncSequence": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncTrigger": { "type": "string", "x-ignition-non-secret": false }, "createIndex": { "type": "string", "x-ignition-non-secret": false }, "autoIncTypeDef": { "type": "string", "x-ignition-non-secret": false }, "alterTable": { "type": "string", "x-ignition-non-secret": false }, "alterTableColumnDef": { "type": "string", "x-ignition-non-secret": false }, "primaryKeyDef": { "type": "string", "x-ignition-non-secret": true }, "limit": { "type": "string", "x-ignition-non-secret": false }, "limitClausePosition": { "type": "string", "enum": [ "Front", "Back", "Where", "Wrap" ], "x-ignition-non-secret": false }, "currentTimeQuery": { "type": "string", "x-ignition-non-secret": false }, "columnQuoteChar": { "type": "string", "x-ignition-non-secret": false }, "supportsRGK": { "type": "boolean", "x-ignition-non-secret": false }, "fetchKeyQuery": { "type": "string", "x-ignition-non-secret": true }, "tableListFilter": { "type": "string", "x-ignition-non-secret": false }, "i1Type": { "type": "string", "x-ignition-non-secret": false }, "i2Type": { "type": "string", "x-ignition-non-secret": false }, "i4Type": { "type": "string", "x-ignition-non-secret": false }, "i8Type": { "type": "string", "x-ignition-non-secret": false }, "boolType": { "type": "string", "x-ignition-non-secret": false }, "datetimeType": { "type": "string", "x-ignition-non-secret": false }, "r4Type": { "type": "string", "x-ignition-non-secret": false }, "r8Type": { "type": "string", "x-ignition-non-secret": false }, "stringType": { "type": "string", "x-ignition-non-secret": false }, "blobType": { "type": "string", "x-ignition-non-secret": false }, "textType": { "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "createTable": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncSequence": { "type": "string", "x-ignition-non-secret": false }, "createAutoIncTrigger": { "type": "string", "x-ignition-non-secret": false }, "createIndex": { "type": "string", "x-ignition-non-secret": false }, "autoIncTypeDef": { "type": "string", "x-ignition-non-secret": false }, "alterTable": { "type": "string", "x-ignition-non-secret": false }, "alterTableColumnDef": { "type": "string", "x-ignition-non-secret": false }, "primaryKeyDef": { "type": "string", "x-ignition-non-secret": true }, "limit": { "type": "string", "x-ignition-non-secret": false }, "limitClausePosition": { "type": "string", "enum": [ "Front", "Back", "Where", "Wrap" ], "x-ignition-non-secret": false }, "currentTimeQuery": { "type": "string", "x-ignition-non-secret": false }, "columnQuoteChar": { "type": "string", "x-ignition-non-secret": false }, "supportsRGK": { "type": "boolean", "x-ignition-non-secret": false }, "fetchKeyQuery": { "type": "string", "x-ignition-non-secret": true }, "tableListFilter": { "type": "string", "x-ignition-non-secret": false }, "i1Type": { "type": "string", "x-ignition-non-secret": false }, "i2Type": { "type": "string", "x-ignition-non-secret": false }, "i4Type": { "type": "string", "x-ignition-non-secret": false }, "i8Type": { "type": "string", "x-ignition-non-secret": false }, "boolType": { "type": "string", "x-ignition-non-secret": false }, "datetimeType": { "type": "string", "x-ignition-non-secret": false }, "r4Type": { "type": "string", "x-ignition-non-secret": false }, "r8Type": { "type": "string", "x-ignition-non-secret": false }, "stringType": { "type": "string", "x-ignition-non-secret": false }, "blobType": { "type": "string", "x-ignition-non-secret": false }, "textType": { "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/email-profile": { "get": { "tags": [ "config-email-profile" ], "summary": "List Email Profile Settings Resources", "description": "List all Email Profile Settings resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "smtp.classic", "smtp.oauth2" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/email-profile/smtp.classic", "title": "smtp.classic", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "SMTP SERVER SETTINGS", "label": "Port" }, "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use SSL/TLS port" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use STARTTLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "The username for logging into the email server.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Username", "isNullable": true }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for logging into the email server.", "x-form": { "fieldType": "SECRET", "category": "SMTP SERVER SETTINGS", "label": "Password *" } } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "default": "TLSv1.2", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "SSL Protocols" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "settings" ] }, { "$id": "ignition/email-profile/smtp.oauth2", "title": "smtp.oauth2", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "oAuth2": { "description": "OAuth2 Settings", "type": "object", "properties": { "username": { "description": "The username that the Gateway will use along with the access token which together make up the credential in the SMTP protocol's XOAUTH2 SASL authentication mechanism.", "type": "string", "x-ignition-non-secret": false }, "oAuth2Client": { "description": "The name of the OAuth2 Client which will be used by this Email Profile to obtain access tokens.", "type": "string", "x-ignition-non-secret": false }, "interactive": { "description": "If enabled, user interaction is required to obtain access and refresh tokens (3-legged OAuth 2.0 flow). If disabled, user interaction is not required to obtain access tokens - the Gateway will obtain access tokens using its own client credentials (2-legged OAuth 2.0 flow).", "type": "boolean", "x-ignition-non-secret": false }, "scope": { "description": "The OAuth 2.0 scope values representing the access token's set of permissions requested by the Gateway.", "type": "array", "items": { "type": "string", "scope": "string" }, "x-ignition-non-secret": false } }, "required": [ "username", "oAuth2Client", "interactive" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advancedOAuth2": { "description": "Advanced OAuth2 Settings", "type": "object", "properties": { "accessTokenTimeout": { "description": "Amount of time in seconds to wait for a valid access token before giving up on sending an email. Values less than or equal to zero will cause the profile to expect a valid access token to be available immediately and will fail fast if one is not available at the time an email needs to be sent.", "type": "number", "x-ignition-non-secret": true }, "defaultAccessTokenExpiration": { "description": "The amount of time in seconds before an access token expires by default. This value only applies for access tokens which do not have an explicit expiration from the authorization server. Values less than or equal to zero means access tokens do not expire by default.", "type": "number", "x-ignition-non-secret": true }, "refreshBeforeExpiration": { "description": "The amount of time in seconds before an access token expires when a new token should be requested. Values less than or equal to zero results in new access token requests exactly when the last access token expires.", "type": "number", "x-ignition-non-secret": false }, "additionalAuthorizationRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 authorization request (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "additionalAuthorizationCodeAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using an authorization code (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalClientCredentialsAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using client credentials (non-interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalRefreshTokenAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using a refresh token (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true } }, "x-ignition-non-secret": false } }, "required": [ "settings", "oAuth2" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "smtp.classic", "smtp.oauth2" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/email-profile/smtp.classic", "title": "smtp.classic", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Hostname *" }, "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "default": 25, "x-form": { "fieldType": "NUMBER", "category": "SMTP SERVER SETTINGS", "label": "Port" }, "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use SSL/TLS port" }, "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "x-form": { "fieldType": "CHECKBOX", "category": "SMTP SERVER SETTINGS", "label": "Use STARTTLS" }, "type": "boolean", "x-ignition-non-secret": false }, "username": { "description": "The username for logging into the email server.", "x-form": { "fieldType": "TEXT", "category": "SMTP SERVER SETTINGS", "label": "Username", "isNullable": true }, "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for logging into the email server.", "x-form": { "fieldType": "SECRET", "category": "SMTP SERVER SETTINGS", "label": "Password *" } } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "default": 10000, "x-form": { "fieldType": "NUMBER", "category": "ADVANCED", "label": "SMTP Timeout" }, "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "ADVANCED", "label": "Debug Mode Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "default": "TLSv1.2", "x-form": { "fieldType": "TEXT", "category": "ADVANCED", "label": "SSL Protocols" }, "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "settings" ] }, { "$id": "ignition/email-profile/smtp.oauth2", "title": "smtp.oauth2", "type": "object", "properties": { "settings": { "description": "SMTP Server Settings", "type": "object", "properties": { "hostname": { "description": "Hostname of the SMTP server to send email through.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "Port SMTP service is running on.", "type": "number", "x-ignition-non-secret": false }, "useSslPort": { "description": "Connect using dedicated SSL/TLS port.", "type": "boolean", "x-ignition-non-secret": false }, "startTlsEnabled": { "description": "Connect using STARTTLS.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "hostname" ], "x-ignition-non-secret": false }, "oAuth2": { "description": "OAuth2 Settings", "type": "object", "properties": { "username": { "description": "The username that the Gateway will use along with the access token which together make up the credential in the SMTP protocol's XOAUTH2 SASL authentication mechanism.", "type": "string", "x-ignition-non-secret": false }, "oAuth2Client": { "description": "The name of the OAuth2 Client which will be used by this Email Profile to obtain access tokens.", "type": "string", "x-ignition-non-secret": false }, "interactive": { "description": "If enabled, user interaction is required to obtain access and refresh tokens (3-legged OAuth 2.0 flow). If disabled, user interaction is not required to obtain access tokens - the Gateway will obtain access tokens using its own client credentials (2-legged OAuth 2.0 flow).", "type": "boolean", "x-ignition-non-secret": false }, "scope": { "description": "The OAuth 2.0 scope values representing the access token's set of permissions requested by the Gateway.", "type": "array", "items": { "type": "string", "scope": "string" }, "x-ignition-non-secret": false } }, "required": [ "username", "oAuth2Client", "interactive" ], "x-ignition-non-secret": false }, "advanced": { "description": "Advanced", "type": "object", "properties": { "smtpTimeout": { "description": "Timeout (in milliseconds) to use when connecting to, reading from, and writing to the SMTP server.", "type": "number", "x-ignition-non-secret": false }, "debugModeEnabled": { "description": "Enable email session debugging. Information is printed to standard output (wrapper.log).", "type": "boolean", "x-ignition-non-secret": false }, "sslProtocols": { "description": "A comma separated list of protocols that will be allowed if connecting via SSL / TLS.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advancedOAuth2": { "description": "Advanced OAuth2 Settings", "type": "object", "properties": { "accessTokenTimeout": { "description": "Amount of time in seconds to wait for a valid access token before giving up on sending an email. Values less than or equal to zero will cause the profile to expect a valid access token to be available immediately and will fail fast if one is not available at the time an email needs to be sent.", "type": "number", "x-ignition-non-secret": true }, "defaultAccessTokenExpiration": { "description": "The amount of time in seconds before an access token expires by default. This value only applies for access tokens which do not have an explicit expiration from the authorization server. Values less than or equal to zero means access tokens do not expire by default.", "type": "number", "x-ignition-non-secret": true }, "refreshBeforeExpiration": { "description": "The amount of time in seconds before an access token expires when a new token should be requested. Values less than or equal to zero results in new access token requests exactly when the last access token expires.", "type": "number", "x-ignition-non-secret": false }, "additionalAuthorizationRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 authorization request (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "additionalAuthorizationCodeAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using an authorization code (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalClientCredentialsAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using client credentials (non-interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true }, "additionalRefreshTokenAccessTokenRequestParameters": { "description": "Add any additional parameters which should be encoded on the OAuth 2.0 access token request granted using a refresh token (interactive only).", "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "value": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": true } }, "x-ignition-non-secret": false } }, "required": [ "settings", "oAuth2" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/gateway-network-incoming": { "get": { "tags": [ "config-gateway-network" ], "summary": "List Incoming Connection Settings Resources", "description": "List all Incoming Connection Settings resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "connectionId": { "type": "string", "x-ignition-non-secret": false }, "securityStatus": { "type": "string", "enum": [ "PendingApproval", "Approved", "NotOnWhiteList" ], "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "connectionId": { "type": "string", "x-ignition-non-secret": false }, "securityStatus": { "type": "string", "enum": [ "PendingApproval", "Approved", "NotOnWhiteList" ], "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/gateway-network-outgoing": { "get": { "tags": [ "config-gateway-network" ], "summary": "List Outgoing Connection Settings Resources", "description": "List all Outgoing Connection Settings resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "host": { "description": "The address of the remote server, not including the port.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "The port of the remote server.", "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Whether to use SSL for the connection.", "type": "boolean", "x-ignition-non-secret": false }, "pingRateMillis": { "description": "How often, in milliseconds, to send a ping to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "pingTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.", "type": "number", "x-ignition-non-secret": false }, "pingMaxMissed": { "description": "The amount of missed pings that will force the connection to be considered faulted.", "type": "number", "x-ignition-non-secret": false }, "wsTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a new web socket to connect to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to establish an HTTP connection to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to read or send HTTP data to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "sendThreads": { "description": "The maximum number of threads that will be used to upload messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false }, "receiveThreads": { "description": "The maximum number of threads that will be used to download messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "host", "port", "useSSL" ] }, "backupConfig": { "type": "object", "properties": { "host": { "description": "The address of the remote server, not including the port.", "type": "string", "x-ignition-non-secret": false }, "port": { "description": "The port of the remote server.", "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Whether to use SSL for the connection.", "type": "boolean", "x-ignition-non-secret": false }, "pingRateMillis": { "description": "How often, in milliseconds, to send a ping to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "pingTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.", "type": "number", "x-ignition-non-secret": false }, "pingMaxMissed": { "description": "The amount of missed pings that will force the connection to be considered faulted.", "type": "number", "x-ignition-non-secret": false }, "wsTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed for a new web socket to connect to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to establish an HTTP connection to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeoutMillis": { "description": "The maximum time, in milliseconds, allowed to read or send HTTP data to a remote machine.", "type": "number", "x-ignition-non-secret": false }, "sendThreads": { "description": "The maximum number of threads that will be used to upload messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false }, "receiveThreads": { "description": "The maximum number of threads that will be used to download messages. Applies to outgoing connections.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "host", "port", "useSSL" ] }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/holiday": { "get": { "tags": [ "config-alarm" ], "summary": "List Holiday Resources", "description": "List all Holiday resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "date": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "repeatAnnually": { "type": "boolean", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "date": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "repeatAnnually": { "type": "boolean", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/identity-provider": { "get": { "tags": [ "config-identity-provider" ], "summary": "List Identity Provider Resources", "description": "List all Identity Provider resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal", "oidc", "saml" ] }, "userAttributeMapper": { "type": "object", "properties": { "id": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "ID Attribute Mapper", "description": "Configuration settings for the user ID attribute mapper" }, "userName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Username Attribute Mapper", "description": "Configuration settings for the username attribute mapper" }, "firstName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "First Name Attribute Mapper", "description": "Configuration settings for the first name attribute mapper" }, "lastName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Last Name Attribute Mapper", "description": "Configuration settings for the last name attribute mapper" }, "email": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Email Attribute Mapper", "description": "Configuration settings for the email attribute mapper" }, "roles": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Roles Attribute Mapper", "description": "Configuration settings for the roles attribute mapper" } }, "required": [ "id", "userName" ], "title": "User Attribute Mapper", "description": "Configuration settings for the user attribute mapper" }, "userGrants": { "type": "object", "properties": { "id": { "type": "object", "title": "Grants by ID", "description": "Security levels granted to users matching a specific user ID. The object keys are the user IDs to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "username": { "type": "object", "title": "Grants by Username", "description": "Security levels granted to users matching a specific username. The object keys are the usernames to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } } }, "title": "User Grants", "description": "Configuration settings for the user grants" }, "securityLevelRules": { "type": "object", "properties": { "nodes": { "type": "array", "title": "Nodes", "description": "Configuration settings for each security level rule node", "items": { "$ref": "#/components/schemas/SecurityLevelRuleNode" } } }, "required": [ "nodes" ], "title": "Security Level Rules", "description": "Configuration settings for the security level rules" } }, "required": [ "type", "userAttributeMapper", "userGrants", "securityLevelRules" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/identity-provider/internal", "title": "internal", "type": "object", "properties": { "userSource": { "type": "string", "title": "User Source Profile Name", "description": "The name of the User Source Profile used to authenticate users" }, "authMethods": { "type": "array", "title": "Authentication Methods", "description": "An array of authentication methods in preference order. There must be at least one authentication method in the array. If there are more than one authentication methods in the array, there must not be any duplicate authentication method types (such as two basic or two badge authentication methods).", "items": { "oneOf": [ { "type": "object", "title": "basic", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "basic" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "badge", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "badge" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method.", "properties": { "secretRequired": { "type": "boolean", "title": "Require Secret", "description": "If set to true, the user will be required to provide a secret in addition to their badge scan. If false, the user will only need to scan their badge to successfully authenticate.", "x-ignition-non-secret": true } }, "required": [ "secretRequired" ] } }, "required": [ "type", "config" ] } ] } }, "sessionInactivityTimeout": { "type": "number", "title": "Session Inactivity Timeout", "description": "The number of minutes which must elapse before expiring a session due to user inactivity. Sessions will not timeout if set to any number less than or equal to zero." }, "sessionExp": { "type": "number", "title": "Session Expiration", "description": "The maximum number of minutes a session may exist before it is expired. Sessions will not have a max lifetime if set to any number less than or equal to zero." }, "rememberMeExp": { "type": "number", "title": "Remember Me Expiration", "description": "The maximum number of hours a user will be remembered if they elect to be remembered. Remember Me is disabled when this value is set to any number less than or equal to zero." } }, "required": [ "userSource", "authMethods", "sessionInactivityTimeout", "sessionExp", "rememberMeExp" ] }, { "$id": "ignition/identity-provider/oidc", "title": "oidc", "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the identity provider." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the identity provider.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationEndpoint": { "type": "string", "title": "Authorization URL", "description": "URL of the OP's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the OP on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenEndpoint": { "type": "string", "title": "Token URL", "description": "URL of the OP's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "endSessionEndpoint": { "type": "string", "title": "Logout URL", "description": "URL at the OP to which an RP can perform a redirect to request that the End-User be logged out at the OP." }, "jsonWebKeysEndpoint": { "type": "string", "title": "JSON Web Keys URL", "description": "URL of the OP's JSON Web Key Set document.", "x-ignition-non-secret": true }, "jsonWebKeysEndpointEnabled": { "type": "boolean", "title": "Enable JSON Web Keys URL", "description": "If true, then identity provider public keys will be automatically downloaded from the Json Web Keys URL if it is set. New keys will be automatically fetched when the identity provider generates new keys. If false, then the Provider Keys setting is used, so when the identity provider rotates keys, they must be manually added to this configuration.", "x-ignition-non-secret": true }, "userInfoEndpoint": { "type": "string", "title": "User Info URL", "description": "URL to retrieve UserInfo claims from the provider." }, "userInfoRequestMethod": { "type": "string", "title": "User Info Request Method", "description": "The HTTP method used for sending User Info API requests to the User Info URL.", "enum": [ "GET", "POST" ] }, "providerId": { "type": "string", "title": "Provider ID", "description": "The value that the OP sets as the \"iss\" (issuer) claim for claim sets that originate from the OP. It is also the value that Ignition sets as the \"aud\" (audience) claim for claim sets that originate from this Ignition client intended for the OP's consumption." }, "providerKeys": { "type": "array", "title": "Provider Keys", "description": "A list of trusted JSON Web Keys provided by the OP. Ignition uses these keys to validate data signed by the OP and to encrypt data to the OP.", "x-ignition-non-secret": true, "items": { "oneOf": [ { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "EC" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "The \"crv\" (curve) parameter identifies the cryptographic curve used with the key.", "enum": [ "P-256", "P-384", "P-521", "secp256k1" ] }, "x": { "type": "string", "title": "X Coordinate", "description": "The \"x\" (x coordinate) parameter contains the x coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." }, "y": { "type": "string", "title": "Y Coordinate", "description": "The \"y\" (y coordinate) parameter contains the y coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." } }, "required": [ "kty", "crv", "x" ], "title": "Public Elliptic Curve Key", "description": "JSON Web Key encoding of a Public Elliptic Curve key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "RSA" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "n": { "type": "string", "title": "Modulus", "description": "The \"n\" (modulus) parameter contains the modulus value for the RSA public key. It is represented as a Base64urlUInt-encoded value." }, "e": { "type": "string", "title": "Exponent", "description": "The \"e\" (exponent) parameter contains the exponent value for the RSA public key. It is represented as a Base64urlUInt-encoded value." } }, "required": [ "kty", "n", "e" ], "title": "Public RSA Key", "description": "JSON Web Key encoding of a Public RSA key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "OKP" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "Key subtype.", "enum": [ "Ed25519", "Ed448", "X25519", "X448" ] }, "x": { "type": "string", "title": "Public Key", "description": "The public key encoded using the base64url [RFC4648] encoding." } }, "required": [ "kty", "crv", "x" ], "title": "Public Octet Key Pair", "description": "Public JSON Web Key encoding for public key algorithms that use octet strings as private and public keys." } ] } }, "allowedIdTokenSigningAlgorithms": { "type": "array", "title": "Allowed ID Token Signing Algorithms", "description": "The list of JWS algorithms that Ignition will allow the OP to use for signing ID tokens. Warning: allowing a value of \"none\" could allow a malicious user to forge ID tokens, and Ignition will be unable to distinguish between an authentic ID token issued by the OP and a forged ID token issued by the malicious user. Therefore, it is recommended never to allow \"none\".", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES256K", "EdDSA", "PS256", "PS384", "PS512" ] } }, "scope": { "type": "array", "title": "Scope", "description": "A list of default scopes which will be sent for each authorization request to the OP.", "items": { "type": "string" } } }, "required": [ "clientId", "clientSecret", "authorizationEndpoint", "tokenEndpoint", "jsonWebKeysEndpointEnabled", "userInfoRequestMethod", "providerId", "providerKeys", "allowedIdTokenSigningAlgorithms", "scope" ] }, { "$id": "ignition/identity-provider/saml", "title": "saml", "type": "object", "properties": { "idpEntityId": { "type": "string", "title": "IdP Entity ID", "description": "The Identity Provider's Entity ID." }, "spEntityId": { "type": "string", "title": "SP Entity ID", "description": "The Service Provider's Entity ID. In this case, the Service Provider is the current Ignition Gateway." }, "spEntityIdEnabled": { "type": "boolean", "title": "Enable SP Entity ID", "description": "True if the SP Entity ID setting should be used. False to automatically generate the SP Entity ID based on the hostname that the client uses to connect to this Gateway." }, "acsBinding": { "type": "string", "title": "ACS Binding", "description": "The expected binding used by the Identity Provider when interacting with Ignition's Assertion Consumer Service.", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] }, "nameIdFormat": { "type": "string", "title": "Name ID Format", "description": "The expected name ID format for subjects of assertions resulting from Authn Requests.", "enum": [ "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName", "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName", "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos", "urn:oasis:names:tc:SAML:2.0:nameid-format:entity", "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "urn:oasis:names:tc:SAML:2.0:nameid-format:transient" ] }, "ssoServiceConfig": { "type": "object", "properties": { "uri": { "type": "string", "title": "Service URL", "description": "The URL to the service", "examples": [ "https://test.local:8043/saml/sso" ] }, "binding": { "type": "string", "title": "Service Binding", "description": "The Binding for the service", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] } }, "required": [ "uri", "binding" ], "title": "SSO Service Config", "description": "The Identity Provider's Single Sign-On (SSO) Service Configuration." }, "forceAuthnEnabled": { "type": "boolean", "title": "Force Authn", "description": "Setting this value to true will force complying Identity Providers to authenticate the user each time instead of relying on a previous security context. See section 3.4.1 of saml-core-2.0-os for more details." }, "responseSignaturesRequired": { "type": "boolean", "title": "Require Response Signatures", "description": "If true, the Gateway will require each Identity Provider Response to have a valid signature. Warning: if both this value and the 'Require Assertion Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "assertionSignaturesRequired": { "type": "boolean", "title": "Require Assertion Signatures", "description": "If true, the Gateway will require each Identity Provider Assertion to have a valid signature. Warning: if both this value and the 'Require Response Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "idpMetadataUrl": { "type": "string", "title": "IdP Metadata URL", "description": "URL to the SAML Identity Provider Metadata document.", "examples": [ "https://test.local:8043/saml/metadata" ] }, "idpMetadataUrlEnabled": { "type": "boolean", "title": "Enable IdP Metadata URL", "description": "If true, and if the IdP Metadata URL is specified, the Identity Provider's signature verifying keys and certificates will be automatically downloaded from IdP metadata URL. New keys and certificates will be automatically fetched when the Identity Provider generates them. If unchecked, then the static set of keys and certificates embedded in this configuration are used, so when the identity provider rotates them, they must be manually added to this configuration." }, "signatureVerifyingCertificates": { "type": "array", "title": "Signature Verifying Certificates", "description": "An array of signing certificates that Ignition uses to validate signatures from the IdP. Each array entry is a base64-encoded DER-encoding of an X.509 key.", "items": { "type": "string", "contentEncoding": "base64", "title": "Certificate", "description": "A base64-encoded DER-encoding of an X.509 certificate." } }, "signatureVerifyingKeys": { "type": "array", "title": "Signature Verifying Keys", "description": "An array of signing keys that Ignition uses to validate signatures from the IdP.", "x-ignition-non-secret": true, "items": { "type": "object", "properties": { "alg": { "type": "string", "title": "Algorithm", "description": "The algorithm identifier for this signature verifying key." }, "key": { "type": "string", "contentEncoding": "base64", "title": "Key", "description": "A base64-encoded DER-encoding of an X.509 key.", "x-ignition-non-secret": true } }, "required": [ "alg", "key" ] } } }, "required": [ "idpEntityId", "spEntityIdEnabled", "acsBinding", "nameIdFormat", "ssoServiceConfig", "forceAuthnEnabled", "responseSignaturesRequired", "assertionSignaturesRequired", "idpMetadataUrlEnabled", "signatureVerifyingCertificates", "signatureVerifyingKeys" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal", "oidc", "saml" ] }, "userAttributeMapper": { "type": "object", "properties": { "id": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "ID Attribute Mapper", "description": "Configuration settings for the user ID attribute mapper" }, "userName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Username Attribute Mapper", "description": "Configuration settings for the username attribute mapper" }, "firstName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "First Name Attribute Mapper", "description": "Configuration settings for the first name attribute mapper" }, "lastName": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Last Name Attribute Mapper", "description": "Configuration settings for the last name attribute mapper" }, "email": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Email Attribute Mapper", "description": "Configuration settings for the email attribute mapper" }, "roles": { "oneOf": [ { "type": "object", "title": "direct", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "direct" }, "config": { "type": "object", "properties": { "subSourceName": { "type": "string", "title": "Source", "description": "Source for the attribute" }, "attributePath": { "type": "string", "title": "Path", "description": "Path to the attribute within the source" } }, "required": [ "attributePath" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the attribute mapper.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the attribute mapper." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Roles Attribute Mapper", "description": "Configuration settings for the roles attribute mapper" } }, "required": [ "id", "userName" ], "title": "User Attribute Mapper", "description": "Configuration settings for the user attribute mapper" }, "userGrants": { "type": "object", "properties": { "id": { "type": "object", "title": "Grants by ID", "description": "Security levels granted to users matching a specific user ID. The object keys are the user IDs to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "username": { "type": "object", "title": "Grants by Username", "description": "Security levels granted to users matching a specific username. The object keys are the usernames to match. The object values are the arrays of SecurityLevels to grant.", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } } }, "title": "User Grants", "description": "Configuration settings for the user grants" }, "securityLevelRules": { "type": "object", "properties": { "nodes": { "type": "array", "title": "Nodes", "description": "Configuration settings for each security level rule node", "items": { "$ref": "#/components/schemas/SecurityLevelRuleNode" } } }, "required": [ "nodes" ], "title": "Security Level Rules", "description": "Configuration settings for the security level rules" } }, "required": [ "type", "userAttributeMapper", "userGrants", "securityLevelRules" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/identity-provider/internal", "title": "internal", "type": "object", "properties": { "userSource": { "type": "string", "title": "User Source Profile Name", "description": "The name of the User Source Profile used to authenticate users" }, "authMethods": { "type": "array", "title": "Authentication Methods", "description": "An array of authentication methods in preference order. There must be at least one authentication method in the array. If there are more than one authentication methods in the array, there must not be any duplicate authentication method types (such as two basic or two badge authentication methods).", "items": { "oneOf": [ { "type": "object", "title": "basic", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "basic" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method." } }, "required": [ "type", "config" ] }, { "type": "object", "title": "badge", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the authentication method.", "const": "badge" }, "config": { "type": "object", "title": "Config", "description": "The configuration settings for the authentication method.", "properties": { "secretRequired": { "type": "boolean", "title": "Require Secret", "description": "If set to true, the user will be required to provide a secret in addition to their badge scan. If false, the user will only need to scan their badge to successfully authenticate.", "x-ignition-non-secret": true } }, "required": [ "secretRequired" ] } }, "required": [ "type", "config" ] } ] } }, "sessionInactivityTimeout": { "type": "number", "title": "Session Inactivity Timeout", "description": "The number of minutes which must elapse before expiring a session due to user inactivity. Sessions will not timeout if set to any number less than or equal to zero." }, "sessionExp": { "type": "number", "title": "Session Expiration", "description": "The maximum number of minutes a session may exist before it is expired. Sessions will not have a max lifetime if set to any number less than or equal to zero." }, "rememberMeExp": { "type": "number", "title": "Remember Me Expiration", "description": "The maximum number of hours a user will be remembered if they elect to be remembered. Remember Me is disabled when this value is set to any number less than or equal to zero." } }, "required": [ "userSource", "authMethods", "sessionInactivityTimeout", "sessionExp", "rememberMeExp" ] }, { "$id": "ignition/identity-provider/oidc", "title": "oidc", "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the identity provider." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the identity provider.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationEndpoint": { "type": "string", "title": "Authorization URL", "description": "URL of the OP's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the OP on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenEndpoint": { "type": "string", "title": "Token URL", "description": "URL of the OP's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "endSessionEndpoint": { "type": "string", "title": "Logout URL", "description": "URL at the OP to which an RP can perform a redirect to request that the End-User be logged out at the OP." }, "jsonWebKeysEndpoint": { "type": "string", "title": "JSON Web Keys URL", "description": "URL of the OP's JSON Web Key Set document.", "x-ignition-non-secret": true }, "jsonWebKeysEndpointEnabled": { "type": "boolean", "title": "Enable JSON Web Keys URL", "description": "If true, then identity provider public keys will be automatically downloaded from the Json Web Keys URL if it is set. New keys will be automatically fetched when the identity provider generates new keys. If false, then the Provider Keys setting is used, so when the identity provider rotates keys, they must be manually added to this configuration.", "x-ignition-non-secret": true }, "userInfoEndpoint": { "type": "string", "title": "User Info URL", "description": "URL to retrieve UserInfo claims from the provider." }, "userInfoRequestMethod": { "type": "string", "title": "User Info Request Method", "description": "The HTTP method used for sending User Info API requests to the User Info URL.", "enum": [ "GET", "POST" ] }, "providerId": { "type": "string", "title": "Provider ID", "description": "The value that the OP sets as the \"iss\" (issuer) claim for claim sets that originate from the OP. It is also the value that Ignition sets as the \"aud\" (audience) claim for claim sets that originate from this Ignition client intended for the OP's consumption." }, "providerKeys": { "type": "array", "title": "Provider Keys", "description": "A list of trusted JSON Web Keys provided by the OP. Ignition uses these keys to validate data signed by the OP and to encrypt data to the OP.", "x-ignition-non-secret": true, "items": { "oneOf": [ { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "EC" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "The \"crv\" (curve) parameter identifies the cryptographic curve used with the key.", "enum": [ "P-256", "P-384", "P-521", "secp256k1" ] }, "x": { "type": "string", "title": "X Coordinate", "description": "The \"x\" (x coordinate) parameter contains the x coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." }, "y": { "type": "string", "title": "Y Coordinate", "description": "The \"y\" (y coordinate) parameter contains the y coordinate for the Elliptic Curve point. It is represented as the base64url encoding of the octet string representation of the coordinate." } }, "required": [ "kty", "crv", "x" ], "title": "Public Elliptic Curve Key", "description": "JSON Web Key encoding of a Public Elliptic Curve key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "RSA" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "n": { "type": "string", "title": "Modulus", "description": "The \"n\" (modulus) parameter contains the modulus value for the RSA public key. It is represented as a Base64urlUInt-encoded value." }, "e": { "type": "string", "title": "Exponent", "description": "The \"e\" (exponent) parameter contains the exponent value for the RSA public key. It is represented as a Base64urlUInt-encoded value." } }, "required": [ "kty", "n", "e" ], "title": "Public RSA Key", "description": "JSON Web Key encoding of a Public RSA key." }, { "type": "object", "properties": { "kty": { "type": "string", "title": "Key Type", "description": "The \"kty\" (key type) parameter identifies the cryptographic algorithm family used with the key.", "const": "OKP" }, "use": { "type": "string", "title": "Key Use", "description": "The \"use\" (public key use) parameter identifies the intended use of the public key. The \"use\" parameter is employed to indicate whether a public key is used for encrypting data or verifying the signature on data.", "enum": [ "enc", "sig" ] }, "key_ops": { "type": "array", "title": "Key Operations", "description": "The \"key_ops\" (key operations) parameter identifies the operation(s) for which the key is intended to be used.", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey", "deriveKey", "deriveBits" ] } }, "alg": { "type": "string", "title": "Algorithm", "description": "The \"alg\" (algorithm) parameter identifies the algorithm intended for use with the key." }, "kid": { "type": "string", "title": "Key ID", "description": "The \"kid\" (key ID) parameter is used to match a specific key." }, "x5u": { "type": "string", "title": "X.509 URL", "description": "The \"x5u\" (X.509 URL) parameter is a URI [RFC3986] that refers to a resource for an X.509 public key certificate or certificate chain [RFC5280]. The identified resource MUST provide a representation of the certificate or certificate chain that conforms to RFC 5280 in PEM-encoded form, with each certificate delimited as specified in Section 6.1 of RFC 4945. The key in the first certificate MUST match the public key represented by other members of the JWK." }, "x5c": { "type": "array", "title": "X.509 Certificate Chain", "description": "The \"x5c\" (X.509 certificate chain) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array of certificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648] -- not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value.The PKIX certificate containing the key value MUST be the first certificate. This MAY be followed by additional certificates, with each subsequent certificate being the one used to certify the previous one. The key in the first certificate MUST match the public key represented by other members of the JWK.", "items": { "type": "string" } }, "x5t": { "type": "string", "title": "X.509 Certificate SHA-1 Thumbprint", "description": "The \"x5t\" (X.509 certificate SHA-1 thumbprint) parameter is a base64url-encoded SHA-1 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "x5t#S256": { "type": "string", "title": "X.509 Certificate SHA-256 Thumbprint", "description": "The \"x5t#S256\" (X.509 certificate SHA-256 thumbprint) parameter is a base64url-encoded SHA-256 thumbprint (a.k.a. digest) of the DER encoding of an X.509 certificate [RFC5280]. The key in the certificate MUST match the public key represented by other members of the JWK." }, "crv": { "type": "string", "title": "Curve", "description": "Key subtype.", "enum": [ "Ed25519", "Ed448", "X25519", "X448" ] }, "x": { "type": "string", "title": "Public Key", "description": "The public key encoded using the base64url [RFC4648] encoding." } }, "required": [ "kty", "crv", "x" ], "title": "Public Octet Key Pair", "description": "Public JSON Web Key encoding for public key algorithms that use octet strings as private and public keys." } ] } }, "allowedIdTokenSigningAlgorithms": { "type": "array", "title": "Allowed ID Token Signing Algorithms", "description": "The list of JWS algorithms that Ignition will allow the OP to use for signing ID tokens. Warning: allowing a value of \"none\" could allow a malicious user to forge ID tokens, and Ignition will be unable to distinguish between an authentic ID token issued by the OP and a forged ID token issued by the malicious user. Therefore, it is recommended never to allow \"none\".", "x-ignition-non-secret": true, "items": { "type": "string", "enum": [ "none", "HS256", "HS384", "HS512", "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "ES256K", "EdDSA", "PS256", "PS384", "PS512" ] } }, "scope": { "type": "array", "title": "Scope", "description": "A list of default scopes which will be sent for each authorization request to the OP.", "items": { "type": "string" } } }, "required": [ "clientId", "clientSecret", "authorizationEndpoint", "tokenEndpoint", "jsonWebKeysEndpointEnabled", "userInfoRequestMethod", "providerId", "providerKeys", "allowedIdTokenSigningAlgorithms", "scope" ] }, { "$id": "ignition/identity-provider/saml", "title": "saml", "type": "object", "properties": { "idpEntityId": { "type": "string", "title": "IdP Entity ID", "description": "The Identity Provider's Entity ID." }, "spEntityId": { "type": "string", "title": "SP Entity ID", "description": "The Service Provider's Entity ID. In this case, the Service Provider is the current Ignition Gateway." }, "spEntityIdEnabled": { "type": "boolean", "title": "Enable SP Entity ID", "description": "True if the SP Entity ID setting should be used. False to automatically generate the SP Entity ID based on the hostname that the client uses to connect to this Gateway." }, "acsBinding": { "type": "string", "title": "ACS Binding", "description": "The expected binding used by the Identity Provider when interacting with Ignition's Assertion Consumer Service.", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] }, "nameIdFormat": { "type": "string", "title": "Name ID Format", "description": "The expected name ID format for subjects of assertions resulting from Authn Requests.", "enum": [ "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName", "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName", "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos", "urn:oasis:names:tc:SAML:2.0:nameid-format:entity", "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent", "urn:oasis:names:tc:SAML:2.0:nameid-format:transient" ] }, "ssoServiceConfig": { "type": "object", "properties": { "uri": { "type": "string", "title": "Service URL", "description": "The URL to the service", "examples": [ "https://test.local:8043/saml/sso" ] }, "binding": { "type": "string", "title": "Service Binding", "description": "The Binding for the service", "enum": [ "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ] } }, "required": [ "uri", "binding" ], "title": "SSO Service Config", "description": "The Identity Provider's Single Sign-On (SSO) Service Configuration." }, "forceAuthnEnabled": { "type": "boolean", "title": "Force Authn", "description": "Setting this value to true will force complying Identity Providers to authenticate the user each time instead of relying on a previous security context. See section 3.4.1 of saml-core-2.0-os for more details." }, "responseSignaturesRequired": { "type": "boolean", "title": "Require Response Signatures", "description": "If true, the Gateway will require each Identity Provider Response to have a valid signature. Warning: if both this value and the 'Require Assertion Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "assertionSignaturesRequired": { "type": "boolean", "title": "Require Assertion Signatures", "description": "If true, the Gateway will require each Identity Provider Assertion to have a valid signature. Warning: if both this value and the 'Require Response Signatures' value is set to false, malicious users may trivially compromise the security of your Gateway by forging Responses and/or Assertions. It is recommended to have at least one of these two settings set to true depending on whether the IdP signs Responses, Assertions, or both." }, "idpMetadataUrl": { "type": "string", "title": "IdP Metadata URL", "description": "URL to the SAML Identity Provider Metadata document.", "examples": [ "https://test.local:8043/saml/metadata" ] }, "idpMetadataUrlEnabled": { "type": "boolean", "title": "Enable IdP Metadata URL", "description": "If true, and if the IdP Metadata URL is specified, the Identity Provider's signature verifying keys and certificates will be automatically downloaded from IdP metadata URL. New keys and certificates will be automatically fetched when the Identity Provider generates them. If unchecked, then the static set of keys and certificates embedded in this configuration are used, so when the identity provider rotates them, they must be manually added to this configuration." }, "signatureVerifyingCertificates": { "type": "array", "title": "Signature Verifying Certificates", "description": "An array of signing certificates that Ignition uses to validate signatures from the IdP. Each array entry is a base64-encoded DER-encoding of an X.509 key.", "items": { "type": "string", "contentEncoding": "base64", "title": "Certificate", "description": "A base64-encoded DER-encoding of an X.509 certificate." } }, "signatureVerifyingKeys": { "type": "array", "title": "Signature Verifying Keys", "description": "An array of signing keys that Ignition uses to validate signatures from the IdP.", "x-ignition-non-secret": true, "items": { "type": "object", "properties": { "alg": { "type": "string", "title": "Algorithm", "description": "The algorithm identifier for this signature verifying key." }, "key": { "type": "string", "contentEncoding": "base64", "title": "Key", "description": "A base64-encoded DER-encoding of an X.509 key.", "x-ignition-non-secret": true } }, "required": [ "alg", "key" ] } } }, "required": [ "idpEntityId", "spEntityIdEnabled", "acsBinding", "nameIdFormat", "ssoServiceConfig", "forceAuthnEnabled", "responseSignaturesRequired", "assertionSignaturesRequired", "idpMetadataUrlEnabled", "signatureVerifyingCertificates", "signatureVerifyingKeys" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/keyboard_layout": { "get": { "tags": [ "config-keyboard-layouts" ], "summary": "List Keyboard Layouts Resources", "description": "List all Keyboard Layouts resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "$defs": { "key": { "oneOf": [ { "additionalProperties": false, "example": { "lowercase": "a", "uppercase": "A" }, "properties": { "lowercase": { "$ref": "#/$defs/keyVariant" }, "uppercase": { "$ref": "#/$defs/keyVariant" } }, "required": [ "lowercase" ], "type": "object" }, { "description": "Use one of the specific enum values to add a system key before or after the keys on this row.", "enum": [ "BACKSPACE", "SUBMIT", "SHIFT", "CANCEL", "CAPSLOCK", "NUMERIC_LAYOUT" ], "example": "SHIFT", "type": "string" } ] }, "keyVariant": { "oneOf": [ { "type": [ "string", "number" ] }, { "additionalProperties": false, "properties": { "accents": { "description": "Variants of this key to add after long press or the hold key is toggled.", "items": { "type": "string" }, "type": "array" }, "alias": { "description": "An alternate presentation string for this key.", "type": [ "string", "null" ] }, "character": { "description": "The actual character (sequence) to submit when this key is pressed.", "type": [ "string", "number" ] } }, "required": [ "character" ], "type": "object" } ] } }, "additionalProperties": false, "properties": { "alias": { "description": "A short (2-3 character) string to identify this keyboard, to present on the language selector button", "type": "string" }, "id": { "description": "A fixed UUID for the keyboard layout.", "type": "string" }, "labels": { "additionalProperties": false, "default": { "BACKSPACE": "Backsp", "CANCEL": "Cancel", "SHIFT": "Shift", "SPACE": "Space", "SUBMIT": "Enter" }, "description": "Localized strings to change the text on various system keys", "properties": { "ALPHABET_LAYOUT": { "default": "ABC", "description": "A short string to display while in numeric entry mode, indicating the switch back to standard entry mode.", "type": "string" }, "BACKSPACE": { "default": "Backsp", "type": "string" }, "CANCEL": { "default": "Cancel", "type": "string" }, "CAPSLOCK": { "default": "CAPS", "type": "string" }, "NUMERIC_LAYOUT": { "default": "!123", "description": "A short string to display while in normal entry mode, indicating the switch to numeric/symbols entry mode.", "type": "string" }, "SHIFT": { "default": "Shift", "type": "string" }, "SPACE": { "default": "Space", "type": "string" }, "SUBMIT": { "default": "Enter", "type": "string" } }, "type": "object" }, "name": { "description": "The name of this keyboard layout.", "pattern": "^[a-zA-Z][a-zA-Z0-9_]+$", "type": "string" }, "rows": { "items": { "example": [ { "lowercase": "q", "uppercase": "Q" }, { "lowercase": "w", "uppercase": "W" }, { "lowercase": { "accents": [ "\u00e8", "\u00e9", "\u00ea", "\u00eb", "\u0115" ], "character": "e" }, "uppercase": { "accents": [ "\u00c8", "\u00c9", "\u00ca", "\u00cb", "\u0114" ], "character": "E" } }, { "lowercase": "r", "uppercase": "R" }, { "lowercase": "t", "uppercase": "T" }, { "lowercase": "y", "uppercase": "Y" }, { "lowercase": { "accents": [ "\u00f9", "\u00fa", "\u00fb", "\u00fc", "\u0169" ], "character": "u" }, "uppercase": { "accents": [ "\u00d9", "\u00da", "\u00db", "\u00dc", "\u0168" ], "character": "U" } }, { "lowercase": { "accents": [ "\u00ec", "\u00ed", "\u00ee", "\u00ef", "\u0129" ], "character": "i" }, "uppercase": { "accents": [ "\u00cc", "\u00cd", "\u00ce", "\u00cf", "\u0128" ], "character": "I" } }, { "lowercase": { "accents": [ "\u00f2", "\u00f3", "\u00f4", "\u00f5", "\u00f6" ], "character": "o" }, "uppercase": { "accents": [ "\u00d2", "\u00d3", "\u00d4", "\u00d5", "\u00d6" ], "character": "O" } }, { "lowercase": "p", "uppercase": "P" }, "BACKSPACE" ], "items": { "$ref": "#/$defs/key" }, "type": "array" }, "type": "array" }, "supportedLanguages": { "description": "An array of IETF language tags representing the languages this keyboard layout supports.", "items": { "suggestions": { "Arabic": "ar", "Czech": "cs", "Danish": "da", "Dutch": "nl", "English": "en", "French": "fr", "German": "de", "Greek": "el", "Hungarian": "hu", "Italian": "it", "Polish": "pl", "Portuguese": "pt", "Russian": "ru", "Spanish": "es" }, "type": "string" }, "type": "array" }, "title": { "description": "The string to present to the end user when selecting this layout.", "type": "string" } }, "required": [ "id", "name", "title", "alias", "rows" ], "type": "object" }, "backupConfig": { "$defs": { "key": { "oneOf": [ { "additionalProperties": false, "example": { "lowercase": "a", "uppercase": "A" }, "properties": { "lowercase": { "$ref": "#/$defs/keyVariant" }, "uppercase": { "$ref": "#/$defs/keyVariant" } }, "required": [ "lowercase" ], "type": "object" }, { "description": "Use one of the specific enum values to add a system key before or after the keys on this row.", "enum": [ "BACKSPACE", "SUBMIT", "SHIFT", "CANCEL", "CAPSLOCK", "NUMERIC_LAYOUT" ], "example": "SHIFT", "type": "string" } ] }, "keyVariant": { "oneOf": [ { "type": [ "string", "number" ] }, { "additionalProperties": false, "properties": { "accents": { "description": "Variants of this key to add after long press or the hold key is toggled.", "items": { "type": "string" }, "type": "array" }, "alias": { "description": "An alternate presentation string for this key.", "type": [ "string", "null" ] }, "character": { "description": "The actual character (sequence) to submit when this key is pressed.", "type": [ "string", "number" ] } }, "required": [ "character" ], "type": "object" } ] } }, "additionalProperties": false, "properties": { "alias": { "description": "A short (2-3 character) string to identify this keyboard, to present on the language selector button", "type": "string" }, "id": { "description": "A fixed UUID for the keyboard layout.", "type": "string" }, "labels": { "additionalProperties": false, "default": { "BACKSPACE": "Backsp", "CANCEL": "Cancel", "SHIFT": "Shift", "SPACE": "Space", "SUBMIT": "Enter" }, "description": "Localized strings to change the text on various system keys", "properties": { "ALPHABET_LAYOUT": { "default": "ABC", "description": "A short string to display while in numeric entry mode, indicating the switch back to standard entry mode.", "type": "string" }, "BACKSPACE": { "default": "Backsp", "type": "string" }, "CANCEL": { "default": "Cancel", "type": "string" }, "CAPSLOCK": { "default": "CAPS", "type": "string" }, "NUMERIC_LAYOUT": { "default": "!123", "description": "A short string to display while in normal entry mode, indicating the switch to numeric/symbols entry mode.", "type": "string" }, "SHIFT": { "default": "Shift", "type": "string" }, "SPACE": { "default": "Space", "type": "string" }, "SUBMIT": { "default": "Enter", "type": "string" } }, "type": "object" }, "name": { "description": "The name of this keyboard layout.", "pattern": "^[a-zA-Z][a-zA-Z0-9_]+$", "type": "string" }, "rows": { "items": { "example": [ { "lowercase": "q", "uppercase": "Q" }, { "lowercase": "w", "uppercase": "W" }, { "lowercase": { "accents": [ "\u00e8", "\u00e9", "\u00ea", "\u00eb", "\u0115" ], "character": "e" }, "uppercase": { "accents": [ "\u00c8", "\u00c9", "\u00ca", "\u00cb", "\u0114" ], "character": "E" } }, { "lowercase": "r", "uppercase": "R" }, { "lowercase": "t", "uppercase": "T" }, { "lowercase": "y", "uppercase": "Y" }, { "lowercase": { "accents": [ "\u00f9", "\u00fa", "\u00fb", "\u00fc", "\u0169" ], "character": "u" }, "uppercase": { "accents": [ "\u00d9", "\u00da", "\u00db", "\u00dc", "\u0168" ], "character": "U" } }, { "lowercase": { "accents": [ "\u00ec", "\u00ed", "\u00ee", "\u00ef", "\u0129" ], "character": "i" }, "uppercase": { "accents": [ "\u00cc", "\u00cd", "\u00ce", "\u00cf", "\u0128" ], "character": "I" } }, { "lowercase": { "accents": [ "\u00f2", "\u00f3", "\u00f4", "\u00f5", "\u00f6" ], "character": "o" }, "uppercase": { "accents": [ "\u00d2", "\u00d3", "\u00d4", "\u00d5", "\u00d6" ], "character": "O" } }, { "lowercase": "p", "uppercase": "P" }, "BACKSPACE" ], "items": { "$ref": "#/$defs/key" }, "type": "array" }, "type": "array" }, "supportedLanguages": { "description": "An array of IETF language tags representing the languages this keyboard layout supports.", "items": { "suggestions": { "Arabic": "ar", "Czech": "cs", "Danish": "da", "Dutch": "nl", "English": "en", "French": "fr", "German": "de", "Greek": "el", "Hungarian": "hu", "Italian": "it", "Polish": "pl", "Portuguese": "pt", "Russian": "ru", "Spanish": "es" }, "type": "string" }, "type": "array" }, "title": { "description": "The string to present to the end user when selecting this layout.", "type": "string" } }, "required": [ "id", "name", "title", "alias", "rows" ], "type": "object" }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/metrics-dashboard": { "get": { "tags": [ "config-metrics-dashboard" ], "summary": "List Metrics Dashboard Resources", "description": "List all Metrics Dashboard resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "grid": { "description": "The grid layout of the dashboard", "type": "object", "properties": { "rows": { "description": "The number of rows in the grid", "type": "number", "x-ignition-non-secret": false }, "columns": { "description": "The number of columns in the grid", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "widgets": { "description": "The widgets on the dashboard", "type": "array", "items": { "type": "object", "properties": { "id": { "description": "The widget ID", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The description of the widget", "type": "string", "x-ignition-non-secret": false }, "position": { "description": "The position of the widget", "type": "object", "properties": { "columnEnd": { "description": "The ending column of the widget", "type": "number", "x-ignition-non-secret": false }, "columnStart": { "description": "The starting column of the widget", "type": "number", "x-ignition-non-secret": false }, "rowEnd": { "description": "The ending row of the widget", "type": "number", "x-ignition-non-secret": false }, "rowStart": { "description": "The starting row of the widget", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "grid": { "description": "The grid layout of the dashboard", "type": "object", "properties": { "rows": { "description": "The number of rows in the grid", "type": "number", "x-ignition-non-secret": false }, "columns": { "description": "The number of columns in the grid", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "widgets": { "description": "The widgets on the dashboard", "type": "array", "items": { "type": "object", "properties": { "id": { "description": "The widget ID", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The description of the widget", "type": "string", "x-ignition-non-secret": false }, "position": { "description": "The position of the widget", "type": "object", "properties": { "columnEnd": { "description": "The ending column of the widget", "type": "number", "x-ignition-non-secret": false }, "columnStart": { "description": "The starting column of the widget", "type": "number", "x-ignition-non-secret": false }, "rowEnd": { "description": "The ending row of the widget", "type": "number", "x-ignition-non-secret": false }, "rowStart": { "description": "The starting row of the widget", "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/oauth2-client": { "get": { "tags": [ "config-oauth2-client" ], "summary": "List OAuth2 Client Resources", "description": "List all OAuth2 Client resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the authorization server. This value is provided by the authorization server." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the authorization server. This value is provided by the authorization server.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationUrl": { "type": "string", "title": "Authorization URL", "description": "Optional URL of the authorization server's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the authorization server on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenUrl": { "type": "string", "title": "Token URL", "description": "Required URL of the authorization server's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "httpVersion": { "type": "string", "title": "HTTP Version", "description": "The maximum HTTP version supported by the authorization server's token endpoint. The Gateway's HTTP client will use this version when making HTTP requests to the authorization server.", "enum": [ "HTTP_1_1", "HTTP_2" ] }, "httpConnectTimeout": { "type": "number", "title": "HTTP Connect Timeout", "description": "In the case where the Gateway's HTTP client needs to establish a new HTTP connection with the authorization server, if the connection cannot be established within the given amount of time in milliseconds, then the connection attempt and any pending request requiring the connection will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for the connection to be made)." }, "httpRequestTimeout": { "type": "number", "title": "HTTP Request Timeout", "description": "The timeout in milliseconds for each HTTP request sent from the Gateway's HTTP client to the authorization server. If an HTTP response is not received within the specified timeout after sending an HTTP request then the HTTP request will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for a response)." } }, "required": [ "clientId", "clientSecret", "tokenUrl", "httpVersion", "httpConnectTimeout", "httpRequestTimeout" ] }, "backupConfig": { "type": "object", "properties": { "clientId": { "type": "string", "title": "Client ID", "description": "The client identifier registered within the authorization server. This value is provided by the authorization server." }, "clientSecret": { "title": "Client Secret", "description": "The client secret registered within the authorization server. This value is provided by the authorization server.", "oneOf": [ { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] }, "authorizationUrl": { "type": "string", "title": "Authorization URL", "description": "Optional URL of the authorization server's OAuth 2.0 Authorization Endpoint." }, "authorizationResponseMode": { "type": "string", "title": "Authorization Response Mode", "description": "The authorization response mode that Ignition will request from the authorization server on each authorization request. If unset, Ignition will not encode the response mode parameter on authorization requests, which should default the response mode to \"query\".", "enum": [ "QUERY", "FORM_POST" ] }, "tokenUrl": { "type": "string", "title": "Token URL", "description": "Required URL of the authorization server's OAuth 2.0 Token Endpoint.", "x-ignition-non-secret": true }, "httpVersion": { "type": "string", "title": "HTTP Version", "description": "The maximum HTTP version supported by the authorization server's token endpoint. The Gateway's HTTP client will use this version when making HTTP requests to the authorization server.", "enum": [ "HTTP_1_1", "HTTP_2" ] }, "httpConnectTimeout": { "type": "number", "title": "HTTP Connect Timeout", "description": "In the case where the Gateway's HTTP client needs to establish a new HTTP connection with the authorization server, if the connection cannot be established within the given amount of time in milliseconds, then the connection attempt and any pending request requiring the connection will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for the connection to be made)." }, "httpRequestTimeout": { "type": "number", "title": "HTTP Request Timeout", "description": "The timeout in milliseconds for each HTTP request sent from the Gateway's HTTP client to the authorization server. If an HTTP response is not received within the specified timeout after sending an HTTP request then the HTTP request will time out. There will be no timeout if the value is less than or equal to zero (the Gateway will wait forever for a response)." } }, "required": [ "clientId", "clientSecret", "tokenUrl", "httpVersion", "httpConnectTimeout", "httpRequestTimeout" ] }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/opc-connection": { "get": { "tags": [ "opc-connection" ], "summary": "List OPC Connections Resources", "description": "List all OPC Connections resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "com.inductiveautomation.OpcUaServerType" ] }, "readOnly": { "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/opc-connection/com.inductiveautomation.OpcUaServerType", "title": "com.inductiveautomation.OpcUaServerType", "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "securityPolicy": { "type": "string", "enum": [ "None", "Basic128Rsa15", "Basic256", "Basic256Sha256", "Aes128_Sha256_RsaOaep", "Aes256_Sha256_RsaPss" ], "x-ignition-non-secret": false }, "securityMode": { "type": "string", "enum": [ "Invalid", "None", "Sign", "SignAndEncrypt" ], "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "keepAlive": { "type": "object", "properties": { "failuresAllowed": { "type": "number", "x-ignition-non-secret": false }, "interval": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectTimeout": { "type": "number", "x-ignition-non-secret": false }, "acknowledgeTimeout": { "type": "number", "x-ignition-non-secret": false }, "requestTimeout": { "type": "number", "x-ignition-non-secret": false }, "sessionTimeout": { "type": "number", "x-ignition-non-secret": false }, "maxPerOperation": { "type": "number", "x-ignition-non-secret": false }, "maxReferencesPerNode": { "type": "number", "x-ignition-non-secret": false }, "maxPendingPublishRequests": { "type": "number", "x-ignition-non-secret": false }, "maxNotificationsPerPublish": { "type": "number", "x-ignition-non-secret": false }, "maxMessageSize": { "type": "number", "x-ignition-non-secret": false }, "maxArrayLength": { "type": "number", "x-ignition-non-secret": false }, "maxStringLength": { "type": "number", "x-ignition-non-secret": false }, "browseOrigin": { "type": "string", "enum": [ "OBJECTS_FOLDER", "ROOT_FOLDER" ], "x-ignition-non-secret": false }, "deprecatedDataTypeDictionarySupport": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "security": { "type": "object", "properties": { "certificateValidationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "keyStoreAlias": { "type": "string", "x-ignition-non-secret": true }, "keyStoreAliasPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "failover": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "threshold": { "type": "number", "x-ignition-non-secret": false }, "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "com.inductiveautomation.OpcUaServerType" ] }, "readOnly": { "type": "boolean", "x-ignition-non-secret": false } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/opc-connection/com.inductiveautomation.OpcUaServerType", "title": "com.inductiveautomation.OpcUaServerType", "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "securityPolicy": { "type": "string", "enum": [ "None", "Basic128Rsa15", "Basic256", "Basic256Sha256", "Aes128_Sha256_RsaOaep", "Aes256_Sha256_RsaPss" ], "x-ignition-non-secret": false }, "securityMode": { "type": "string", "enum": [ "Invalid", "None", "Sign", "SignAndEncrypt" ], "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "keepAlive": { "type": "object", "properties": { "failuresAllowed": { "type": "number", "x-ignition-non-secret": false }, "interval": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "connectTimeout": { "type": "number", "x-ignition-non-secret": false }, "acknowledgeTimeout": { "type": "number", "x-ignition-non-secret": false }, "requestTimeout": { "type": "number", "x-ignition-non-secret": false }, "sessionTimeout": { "type": "number", "x-ignition-non-secret": false }, "maxPerOperation": { "type": "number", "x-ignition-non-secret": false }, "maxReferencesPerNode": { "type": "number", "x-ignition-non-secret": false }, "maxPendingPublishRequests": { "type": "number", "x-ignition-non-secret": false }, "maxNotificationsPerPublish": { "type": "number", "x-ignition-non-secret": false }, "maxMessageSize": { "type": "number", "x-ignition-non-secret": false }, "maxArrayLength": { "type": "number", "x-ignition-non-secret": false }, "maxStringLength": { "type": "number", "x-ignition-non-secret": false }, "browseOrigin": { "type": "string", "enum": [ "OBJECTS_FOLDER", "ROOT_FOLDER" ], "x-ignition-non-secret": false }, "deprecatedDataTypeDictionarySupport": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "security": { "type": "object", "properties": { "certificateValidationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "keyStoreAlias": { "type": "string", "x-ignition-non-secret": true }, "keyStoreAliasPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ] } }, "x-ignition-non-secret": false }, "failover": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "threshold": { "type": "number", "x-ignition-non-secret": false }, "discoveryUrl": { "type": "string", "x-ignition-non-secret": false }, "endpointUrl": { "type": "string", "x-ignition-non-secret": false }, "hostOverride": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } }, "uptime": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/roster-config": { "get": { "tags": [ "roster-config" ], "summary": "List Rosters Resources", "description": "List all Rosters resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "users": { "description": "The list of users assigned to this On-Call Roster", "type": "array", "items": { "type": "object", "properties": { "userId": { "description": "The ID of the User.", "type": "string", "x-ignition-non-secret": false }, "profile": { "description": "Name of the User's Source Profile", "type": "string", "x-ignition-non-secret": false } }, "required": [ "userId", "profile" ] }, "x-ignition-non-secret": false } }, "required": [ "users" ] }, "backupConfig": { "type": "object", "properties": { "users": { "description": "The list of users assigned to this On-Call Roster", "type": "array", "items": { "type": "object", "properties": { "userId": { "description": "The ID of the User.", "type": "string", "x-ignition-non-secret": false }, "profile": { "description": "Name of the User's Source Profile", "type": "string", "x-ignition-non-secret": false } }, "required": [ "userId", "profile" ] }, "x-ignition-non-secret": false } }, "required": [ "users" ] }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/schedule": { "get": { "tags": [ "config-alarm" ], "summary": "List Schedule Resources", "description": "List all Schedule resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic schedule", "composite schedule" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/schedule/basic schedule", "title": "basic schedule", "type": "object", "properties": { "observeHolidays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "weekDays": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "weekDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "monday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "tuesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "wednesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "thursday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "friday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "saturday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "sunday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "mondayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "tuesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "wednesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "thursdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "fridayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "saturdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "sundayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "repeatMode": { "default": "Off", "type": "string", "enum": [ "Off", "Weekly", "Daily" ], "x-ignition-non-secret": false }, "repeatOn": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "repeatOff": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "startingAt": { "type": "string", "format": "date-time", "x-ignition-non-secret": false } } }, { "$id": "ignition/schedule/composite schedule", "title": "composite schedule", "type": "object", "properties": { "schedule1": { "description": "Schedule 1 Name", "examples": [ "BasicSchedule1" ], "type": "string", "x-ignition-non-secret": false }, "schedule2": { "description": "Schedule 2 Name", "examples": [ "BasicSchedule2" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "schedule1", "schedule2" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic schedule", "composite schedule" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/schedule/basic schedule", "title": "basic schedule", "type": "object", "properties": { "observeHolidays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDays": { "default": true, "type": "boolean", "x-ignition-non-secret": false }, "allDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "weekDays": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "weekDayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "monday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "tuesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "wednesday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "thursday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "friday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "saturday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "sunday": { "default": false, "type": "boolean", "x-ignition-non-secret": false }, "mondayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "tuesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "wednesdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "thursdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "fridayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "saturdayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "sundayTime": { "default": "0:00-24:00", "type": "string", "x-ignition-non-secret": false }, "repeatMode": { "default": "Off", "type": "string", "enum": [ "Off", "Weekly", "Daily" ], "x-ignition-non-secret": false }, "repeatOn": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "repeatOff": { "default": 1, "type": "number", "x-ignition-non-secret": false }, "startingAt": { "type": "string", "format": "date-time", "x-ignition-non-secret": false } } }, { "$id": "ignition/schedule/composite schedule", "title": "composite schedule", "type": "object", "properties": { "schedule1": { "description": "Schedule 1 Name", "examples": [ "BasicSchedule1" ], "type": "string", "x-ignition-non-secret": false }, "schedule2": { "description": "Schedule 2 Name", "examples": [ "BasicSchedule2" ], "type": "string", "x-ignition-non-secret": false } }, "required": [ "schedule1", "schedule2" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "metrics": { "type": "object", "description": "The metrics of the resource instance.", "properties": { "active": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/secret-provider": { "get": { "tags": [ "config-secret-provider" ], "summary": "List Secret Provider Resources", "description": "List all Secret Provider resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/secret-provider/internal", "title": "internal", "type": "object", "properties": { "secrets": { "type": "object", "title": "Secrets", "description": "The secrets configured on the provider.", "x-ignition-non-secret": true, "additionalProperties": { "type": "object", "properties": { "description": { "type": "string", "title": "Description", "description": "Description for the secret" }, "ciphertext": { "type": "object", "title": "Ciphertext", "description": "The JWE-encoded ciphertext value of the secret", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "ciphertext" ], "title": "Secret", "description": "The name for each entry is the name of the secret, and the value for each entry is the configuration for the secret." } } }, "required": [ "secrets" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "internal" ] } } }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/secret-provider/internal", "title": "internal", "type": "object", "properties": { "secrets": { "type": "object", "title": "Secrets", "description": "The secrets configured on the provider.", "x-ignition-non-secret": true, "additionalProperties": { "type": "object", "properties": { "description": { "type": "string", "title": "Description", "description": "Description for the secret" }, "ciphertext": { "type": "object", "title": "Ciphertext", "description": "The JWE-encoded ciphertext value of the secret", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "ciphertext" ], "title": "Secret", "description": "The name for each entry is the name of the secret, and the value for each entry is the configuration for the secret." } } }, "required": [ "secrets" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/security-zone": { "get": { "tags": [ "config-security-zone" ], "summary": "List Security Zones Resources", "description": "List all Security Zones resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "ipAddresses": { "description": "A list of addresses that this zone applies to, and the addresses may use wildcards or ranges. For example, '192.168.*.*' or '192.168.1-5.0-255'.", "type": "array", "items": { "type": "string", "ipAddresses": "string" }, "x-ignition-non-secret": false }, "hostNames": { "description": "A list of host names that this zone applies to. May use the wildcard '*', such as 'Manufacturing_*'. Host names are the system names of the machines generating the requests. For example, the computer name of the machine running a client.", "type": "array", "items": { "type": "string", "hostNames": "string" }, "x-ignition-non-secret": false }, "gatewayNames": { "description": "A list of gateway names that this zone applies to. May use the wildcard '*'. Gateway names are the names of the Ignition instance.", "type": "array", "items": { "type": "string", "gatewayNames": "string" }, "x-ignition-non-secret": false }, "isSecure": { "description": "If true, only connections over a secure connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "directConnection": { "description": "If true, only requests that come from a direct connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "scopeClient": { "description": "If false, requests from a client will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeDesigner": { "description": "If false, requests from designers will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeGateway": { "description": "If false, requests from the gateway scope will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "entityPolicies": { "description": "A list of entity policies that apply to this zone.", "type": "array", "items": { "type": "object", "properties": { "entityId": { "description": "The ID of the entity the policy applies to.", "type": "string", "x-ignition-non-secret": false }, "propName": { "description": "The property for the policy.", "type": "string", "x-ignition-non-secret": false }, "propValue": { "description": "The value for the property on the policy.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entityId", "propName" ] }, "x-ignition-non-secret": false }, "entityZonePolicy": { "description": "The entity zone policy that applies to this zone.", "type": "object", "properties": { "priority": { "description": "The priority for the policy.", "default": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "ipAddresses": { "description": "A list of addresses that this zone applies to, and the addresses may use wildcards or ranges. For example, '192.168.*.*' or '192.168.1-5.0-255'.", "type": "array", "items": { "type": "string", "ipAddresses": "string" }, "x-ignition-non-secret": false }, "hostNames": { "description": "A list of host names that this zone applies to. May use the wildcard '*', such as 'Manufacturing_*'. Host names are the system names of the machines generating the requests. For example, the computer name of the machine running a client.", "type": "array", "items": { "type": "string", "hostNames": "string" }, "x-ignition-non-secret": false }, "gatewayNames": { "description": "A list of gateway names that this zone applies to. May use the wildcard '*'. Gateway names are the names of the Ignition instance.", "type": "array", "items": { "type": "string", "gatewayNames": "string" }, "x-ignition-non-secret": false }, "isSecure": { "description": "If true, only connections over a secure connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "directConnection": { "description": "If true, only requests that come from a direct connection will be accepted into this zone.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "scopeClient": { "description": "If false, requests from a client will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeDesigner": { "description": "If false, requests from designers will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "scopeGateway": { "description": "If false, requests from the gateway scope will not be accepted into this zone.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "entityPolicies": { "description": "A list of entity policies that apply to this zone.", "type": "array", "items": { "type": "object", "properties": { "entityId": { "description": "The ID of the entity the policy applies to.", "type": "string", "x-ignition-non-secret": false }, "propName": { "description": "The property for the policy.", "type": "string", "x-ignition-non-secret": false }, "propValue": { "description": "The value for the property on the policy.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "entityId", "propName" ] }, "x-ignition-non-secret": false }, "entityZonePolicy": { "description": "The entity zone policy that applies to this zone.", "type": "object", "properties": { "priority": { "description": "The priority for the policy.", "default": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/service-connector": { "get": { "tags": [ "service-connectors" ], "summary": "List Service Connectors Resources", "description": "List all Service Connectors resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "kafka" ] } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/service-connector/kafka", "title": "kafka", "type": "object", "properties": { "bootstrapServers": { "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster.", "type": "array", "items": { "type": "string", "bootstrapServers": "string" }, "x-ignition-non-secret": false }, "saslMechanism": { "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.", "type": "string", "x-ignition-non-secret": false }, "securityProtocol": { "description": "Protocol used to communicate with brokers.", "type": "string", "enum": [ "PLAINTEXT", "SSL", "SASL_PLAINTEXT", "SASL_SSL" ], "x-ignition-non-secret": false }, "username": { "description": "Username to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism.", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Password to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism." }, "ssl": { "type": "object", "properties": { "protocol": { "description": "The SSL protocol used to generate the SSLContext.", "type": "string", "x-ignition-non-secret": false }, "keyPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password of the private key in the key store file or the PEM key specified in 'ssl.keystore.key'." }, "keystore": { "type": "object", "properties": { "type": { "description": "The file format of the key store file. This is optional for client. The values currently supported by the default `ssl.engine.factory.class` are [JKS, PKCS12, PEM].", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format." }, "key": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password'." } }, "x-ignition-non-secret": true }, "truststore": { "type": "object", "properties": { "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format." } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "props": { "type": "object", "properties": { "client": { "description": "Custom properties applied to client. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "consumer": { "description": "Custom properties to be applied to consumers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "producer": { "description": "Custom properties to be applied to producers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "bootstrapServers", "saslMechanism", "securityProtocol" ] } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "kafka" ] } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/service-connector/kafka", "title": "kafka", "type": "object", "properties": { "bootstrapServers": { "description": "A list of host/port pairs to use for establishing the initial connection to the Kafka cluster.", "type": "array", "items": { "type": "string", "bootstrapServers": "string" }, "x-ignition-non-secret": false }, "saslMechanism": { "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.", "type": "string", "x-ignition-non-secret": false }, "securityProtocol": { "description": "Protocol used to communicate with brokers.", "type": "string", "enum": [ "PLAINTEXT", "SSL", "SASL_PLAINTEXT", "SASL_SSL" ], "x-ignition-non-secret": false }, "username": { "description": "Username to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism.", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Password to authenticate with if using 'PLAIN' or 'SCRAM-SHA-256' SASL Mechanism." }, "ssl": { "type": "object", "properties": { "protocol": { "description": "The SSL protocol used to generate the SSLContext.", "type": "string", "x-ignition-non-secret": false }, "keyPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password of the private key in the key store file or the PEM key specified in 'ssl.keystore.key'." }, "keystore": { "type": "object", "properties": { "type": { "description": "The file format of the key store file. This is optional for client. The values currently supported by the default `ssl.engine.factory.class` are [JKS, PKCS12, PEM].", "type": "string", "x-ignition-non-secret": false }, "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format." }, "key": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password'." } }, "x-ignition-non-secret": true }, "truststore": { "type": "object", "properties": { "password": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format." } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "props": { "type": "object", "properties": { "client": { "description": "Custom properties applied to client. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "consumer": { "description": "Custom properties to be applied to consumers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false }, "producer": { "description": "Custom properties to be applied to producers. Specified by a key=value pair on each line.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "required": [ "bootstrapServers", "saslMechanism", "securityProtocol" ] } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/store-and-forward-engine": { "get": { "tags": [ "config-store-forward" ], "summary": "List Store and Forward Engine Resources", "description": "List all Store and Forward Engine resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "timeThresholdMs": { "description": "The maximum milliseconds time that data will be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardRateMs": { "description": "The rate in milliseconds at which data will be considered eligible for forwarding to any attached data sink.", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardingPolicy": { "description": "The forwarding policy used to determine where data should be read from when forwarding to any attached data sink. Note: If the policy is set to \"Primary,\" data will only be written to the secondary datastore (disk) when quarantining.", "type": "string", "enum": [ "ALL", "PRIMARY_ONLY", "SECONDARY_ONLY" ], "x-ignition-non-secret": false }, "forwardingSchedule": { "description": "A comma separated list of time ranges. Examples: 9:00-15:00, 9pm-5am, 20.30-04.30", "type": "string", "x-ignition-non-secret": false }, "isThirdParty": { "description": "Specifies whether the engine shouldn't be directly managed by the Store & Forward Manager.", "type": "boolean", "x-ignition-non-secret": false }, "dataThreshold": { "description": "The maximum amount of data that'll be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "batchSize": { "description": "The maximum amount of data that'll be batched when forwarding to either the secondary datastore (disk) or any attached data sink. This also determines the volume of data removed during each eviction cycle when using an eviction maintenance policy. Note: Data could be further batched within the data sink when processing incoming data.", "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "scanRateMs": { "description": "The rate in milliseconds at which data pipelines are scanned for determining data forwarding.", "minimum": 100, "type": "number", "x-ignition-non-secret": false }, "primaryMaintenancePolicy": { "description": "The optional maintenance policy for the primary datastore (memory).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "secondaryMaintenancePolicy": { "description": "The optional maintenance policy for the secondary datastore (disk).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "timeThresholdMs": { "description": "The maximum milliseconds time that data will be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardRateMs": { "description": "The rate in milliseconds at which data will be considered eligible for forwarding to any attached data sink.", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "forwardingPolicy": { "description": "The forwarding policy used to determine where data should be read from when forwarding to any attached data sink. Note: If the policy is set to \"Primary,\" data will only be written to the secondary datastore (disk) when quarantining.", "type": "string", "enum": [ "ALL", "PRIMARY_ONLY", "SECONDARY_ONLY" ], "x-ignition-non-secret": false }, "forwardingSchedule": { "description": "A comma separated list of time ranges. Examples: 9:00-15:00, 9pm-5am, 20.30-04.30", "type": "string", "x-ignition-non-secret": false }, "isThirdParty": { "description": "Specifies whether the engine shouldn't be directly managed by the Store & Forward Manager.", "type": "boolean", "x-ignition-non-secret": false }, "dataThreshold": { "description": "The maximum amount of data that'll be allowed to accumulate within the primary datastore (memory) until written to the secondary datastore (disk).", "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "batchSize": { "description": "The maximum amount of data that'll be batched when forwarding to either the secondary datastore (disk) or any attached data sink. This also determines the volume of data removed during each eviction cycle when using an eviction maintenance policy. Note: Data could be further batched within the data sink when processing incoming data.", "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "scanRateMs": { "description": "The rate in milliseconds at which data pipelines are scanned for determining data forwarding.", "minimum": 100, "type": "number", "x-ignition-non-secret": false }, "primaryMaintenancePolicy": { "description": "The optional maintenance policy for the primary datastore (memory).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "secondaryMaintenancePolicy": { "description": "The optional maintenance policy for the secondary datastore (disk).", "type": "object", "properties": { "action": { "description": "The action that'll be performed when the maintenance policy is triggered. This determines whether new data will be prevented from being written to the datastore, or if the oldest data will be evicted.", "type": "string", "enum": [ "EVICT_OLDEST_DATA", "PREVENT_NEW_DATA" ], "x-ignition-non-secret": false }, "limit": { "description": "The maintenance limit used for determining when the maintenance policy is triggered. This determines the maximum amount of data that can be stored in the datastore.", "type": "object", "properties": { "limitType": { "description": "The limit type used for describing the maintenance limit value.", "type": "string", "enum": [ "TIME_DURATION", "COUNT", "FILE_SIZE" ], "x-ignition-non-secret": false }, "value": { "description": "The value used for describing the maintenance limit. Time duration limits are expressed in milliseconds, count limits are expressed in data amount, and file size limits are expressed in megabytes. If the value is 0, no limit will be enforced.", "minimum": 0, "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/tag-provider": { "get": { "tags": [ "config-tag-provider" ], "summary": "List Tag Providers Resources", "description": "List all Tag Providers resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "MANAGED", "REMOTE", "STANDARD" ] }, "allowBackfill": { "description": "If **true**, data will be allowed to arrive out of order from the source. Data from the past will be stored to history, but will not be used for alarms, scripts, or subscriptions. If **false**, each value will be processed fully as it arrives.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/tag-provider/MANAGED", "title": "MANAGED", "type": "object", "properties": { "nonUseCount": { "description": "The number of times the provider has not been used", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/REMOTE", "title": "REMOTE", "type": "object", "properties": { "serverName": { "description": "Gateway to target", "type": "string", "x-ignition-non-secret": false }, "remoteProviderName": { "description": "Remote tag provider name", "type": "string", "x-ignition-non-secret": false }, "historyMode": { "description": "Dictates how history is queried for remote Tags.**GatewayNetwork**, history requests will go through the Gateway Network.**Database** history requests will run against the database directly.", "default": "GatewayNetwork", "type": "string", "enum": [ "GatewayNetwork", "Database" ], "x-ignition-non-secret": false }, "historyDatasourceName": { "description": "Datasource name to query when History Access Mode is set to Database.", "type": "string", "x-ignition-non-secret": false }, "historyDriverName": { "description": "If querying the database directly, this is the Gateway name of the remote system.", "type": "string", "x-ignition-non-secret": false }, "historyProviderName": { "description": "If querying the database directly, this is the name of the Tag provider on the remote system.", "type": "string", "x-ignition-non-secret": false }, "alarmStatusEnabled": { "description": "If **true**, alarms configured on the remote Gateway will be enabled on the new Gateway", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "alarmMode": { "description": "How alarm state should be monitored. In **Queried**, state will be queried through the Gateway network when necessary. In **Subscribed**, the state will be subscribed, and updates will be sent asynchronously.", "default": "Queried", "type": "string", "enum": [ "Queried", "Subscribed" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/STANDARD", "title": "STANDARD", "type": "object", "properties": { "defaultDatasourceName": { "type": "string", "x-ignition-non-secret": false }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to read any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "readOnly": { "description": "If **true**, writes to any tag within this tag provider will be rejected.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to write to any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "editPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to edit any tag within this tag provider must have these permissions." }, "valuePersistence": { "description": "If and how memory tag values are persisted. **Database** persists any writes to values in a database. **Configuration** persists writes to values in the config file on the file system. **None** prevents any writes from persisting; on provider restart the value is pulled from the config.", "default": "Database", "type": "string", "enum": [ "None", "Database", "Configuration" ], "x-ignition-non-secret": false } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "MANAGED", "REMOTE", "STANDARD" ] }, "allowBackfill": { "description": "If **true**, data will be allowed to arrive out of order from the source. Data from the past will be stored to history, but will not be used for alarms, scripts, or subscriptions. If **false**, each value will be processed fully as it arrives.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/tag-provider/MANAGED", "title": "MANAGED", "type": "object", "properties": { "nonUseCount": { "description": "The number of times the provider has not been used", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/REMOTE", "title": "REMOTE", "type": "object", "properties": { "serverName": { "description": "Gateway to target", "type": "string", "x-ignition-non-secret": false }, "remoteProviderName": { "description": "Remote tag provider name", "type": "string", "x-ignition-non-secret": false }, "historyMode": { "description": "Dictates how history is queried for remote Tags.**GatewayNetwork**, history requests will go through the Gateway Network.**Database** history requests will run against the database directly.", "default": "GatewayNetwork", "type": "string", "enum": [ "GatewayNetwork", "Database" ], "x-ignition-non-secret": false }, "historyDatasourceName": { "description": "Datasource name to query when History Access Mode is set to Database.", "type": "string", "x-ignition-non-secret": false }, "historyDriverName": { "description": "If querying the database directly, this is the Gateway name of the remote system.", "type": "string", "x-ignition-non-secret": false }, "historyProviderName": { "description": "If querying the database directly, this is the name of the Tag provider on the remote system.", "type": "string", "x-ignition-non-secret": false }, "alarmStatusEnabled": { "description": "If **true**, alarms configured on the remote Gateway will be enabled on the new Gateway", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "alarmMode": { "description": "How alarm state should be monitored. In **Queried**, state will be queried through the Gateway network when necessary. In **Subscribed**, the state will be subscribed, and updates will be sent asynchronously.", "default": "Queried", "type": "string", "enum": [ "Queried", "Subscribed" ], "x-ignition-non-secret": false } } }, { "$id": "ignition/tag-provider/STANDARD", "title": "STANDARD", "type": "object", "properties": { "defaultDatasourceName": { "type": "string", "x-ignition-non-secret": false }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to read any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "readOnly": { "description": "If **true**, writes to any tag within this tag provider will be rejected.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to write to any tag within this tag provider must have these permissions in addition to the target tag's permissions." }, "editPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "description": "Any actor attempting to edit any tag within this tag provider must have these permissions." }, "valuePersistence": { "description": "If and how memory tag values are persisted. **Database** persists any writes to values in a database. **Configuration** persists writes to values in the config file on the file system. **None** prevents any writes from persisting; on provider restart the value is pulled from the config.", "default": "Database", "type": "string", "enum": [ "None", "Database", "Configuration" ], "x-ignition-non-secret": false } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" }, "metrics": { "type": "object", "description": "The metrics of the resource instance.", "properties": { "tagCount": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } }, "healthchecks": { "type": "object", "description": "The health checks of the resource instance.", "properties": { "status": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/list/ignition/user-source": { "get": { "tags": [ "config-user-source" ], "summary": "List User Sources Resources", "description": "List all User Sources resources, in verbose format, including configuration, metrics, and health checks.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "ADEASY", "ADHYBRID", "AD_DB_HYBRID", "DATASOURCE", "FALLBK_CACHE", "INTERNAL" ] }, "scheduleRestricted": { "description": "Users are only able to log in when their assigned schedule is active.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Schedule Restricted" }, "type": "boolean", "x-ignition-non-secret": false }, "failoverProfile": { "description": "If this source is unreachable for authentication, this failover source will be used instead.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Failover Profile", "referenceType": "ignition/user-source" }, "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "description": "The failover mode to use if a failover source is set. Hard - failover only if this source is unreachable. Soft - try the failover source when a user fails to authenticate with this source.", "default": "HARD", "x-form": { "fieldType": "SELECT", "category": "GENERAL", "label": "Failover Mode" }, "type": "string", "enum": [ "HARD", "SOFT" ], "x-ignition-non-secret": false }, "cacheValidationTimeout": { "description": "The amount of time in minutes between cache updates of the user source. Values less than one disable the cache.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Cache Validation Timeout" }, "type": "number", "x-ignition-non-secret": false }, "lockoutEnabled": { "description": "Lock out a user's account after more than the maximum allowed number of failed authentication attempts occur within the lockout window", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Lockout Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "lockoutAttempts": { "description": "Maximum number of failed authentication attempts allowed within the lockout window before locking the user out. Values less than one disables lockout.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Attempts" }, "type": "number", "x-ignition-non-secret": false }, "lockoutWindow": { "description": "The duration of the lockout window in minutes. Values less than one disables lockout.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Window" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/user-source/ADEASY", "title": "ADEASY", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userSearchBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User Search Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userRoleAttribute": { "description": "Attributes of this name on the User object will define the user's roles.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "nestedGroups": { "description": "If this option is checked, nested group membership lookups will be performed.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "groupRoleAttribute": { "description": "Attributes of this name on the Group object will define the group's roles. This setting is only applicable when nested group membership is enabled.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "roleNameAttribute": { "description": "The attribute of this name on the Role object will define the role's name. Leave blank to use the raw value of the attribute defined by User Role Attribute.", "default": "cn", "type": "string", "x-ignition-non-secret": false }, "roleIdAttribute": { "description": "The attribute of this name on the Role object will define the role's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "badgeAttribute": { "description": "The attribute on the User object to define the badge. This setting is required to enable badge-based authentication.", "type": "string", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "roleSearchBase": { "description": "The base folder to search for roles under, such as \"OU=Roles,DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the Role Search Filter. If you specify the root of your tree structure, the search may take a very long time. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Builtin,DC=MyCompany,DC=com)(OU=Users,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "roleSearchFilter": { "description": "The LDAP search filter to use to locate roles.", "default": "(objectClass=group)", "type": "string", "x-ignition-non-secret": false }, "badgeSearchFilter": { "description": "The LDAP search filter to use to find a specific user given a badge. Use the placeholder {0} as a standin for the user's badge. Example: (&(objectClass=user)(badge={0}))", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ] }, { "$id": "ignition/user-source/ADHYBRID", "title": "ADHYBRID", "type": "object", "properties": { "ldap": { "description": "LDAP settings", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations.", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-int-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, users must be added manually.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "populateUsersOnDemand": { "description": "If true, a user record will be created in the Internal user source from the AD entry of any user who successfully authenticates into AD if the record does not already exist in the Internal user source at the time of authentication.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "ldap" ] }, { "$id": "ignition/user-source/AD_DB_HYBRID", "title": "AD_DB_HYBRID", "type": "object", "properties": { "database": { "description": "Database settings", "type": "object", "properties": { "datasource": { "description": "The database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username.<br/>Example: <tt>SELECT username FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value, and the third column the name of a schedule. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value, schedule FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. Only used if \"List Users from Active Directory\" is false. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "userPropsQuery": { "description": "A query that returns the basic properties for a single user. Only used if \"List Users from Active Directory\" is true. Supported return columns are [firstname, lastname, schedule, language, notes, badge]. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT firstname, lastname, schedule, language, notes, badge FROM user_table WHERE username = ?</tt> ", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. Only used if \"List Users from Active Directory\" is false. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings (i.e. the role names), and must be in the first column of the query's results. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT rolename FROM user_role_mapping WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false } }, "required": [ "datasource" ], "x-ignition-non-secret": false }, "ldap": { "description": "LDAP settings", "type": "object", "properties": { "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users via LDAP.", "type": "string", "x-ignition-non-secret": false }, "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-db-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1", "port1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, the database will be queried instead.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "database", "ldap" ] }, { "$id": "ignition/user-source/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Choose the database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "mode": { "description": "In Automatic mode, tables will be created for you and all interaction with the database is handled automatically. In Manual mode, you write queries by hand against tables that you've created. Management of users (adding, removing etc) is not supported in manual mode.", "default": "Automatic", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "authQuery": { "description": "A query that must return a row if the given username and password combination provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent username first and then password. The returned row may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT useruuid, firstname, lastname, schedule FROM USERS WHERE username = ? AND password = MD5(?)</tt>", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username and may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings and must be in the first column of the query's results. The query will be run as a prepared statement with one parameter: the username.<br/>Example: <tt>SELECT rolename FROM mapping_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule, FROM USERS WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt> ", "type": "string", "x-ignition-non-secret": false }, "tableNamePrefix": { "description": "When in automatic mode, tables will be created to store the users and roles. They will have this prefix.", "default": "scada_", "type": "string", "x-ignition-non-secret": false }, "enableUuids": { "description": "When in automatic mode, UUIDs will be generated for user and role IDs.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/user-source/FALLBK_CACHE", "title": "FALLBK_CACHE", "type": "object", "properties": { "cacheRetention": { "description": "Number of days that the cache will retain recently used credentials.", "default": 15, "minimum": 1, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/user-source/INTERNAL", "title": "INTERNAL", "type": "object", "properties": { "passwordMaxAge": { "description": "The maximum age (in days) that a password is valid for. A value of zero disables password expiration.", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": true }, "passwordMinLength": { "description": "Passwords must be at least this many characters long.", "default": 8, "minimum": 1, "maximum": 20, "type": "number", "x-ignition-non-secret": true }, "passwordComplexity": { "description": "The number of character types (lowercase letters, uppercase letters, digits, punctuation) each password must contain. For example, a value of 3 means passwords must have 3 of the 4 character types to be considered valid.", "default": 3, "minimum": 1, "maximum": 4, "type": "number", "x-ignition-non-secret": true }, "passwordHistory": { "description": "The number of previous passwords to store. Passwords in the history list may not be re-used. A value of zero disables this feature.", "default": 0, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true }, "passwordContainsPassword": { "description": "If enabled, passwords may not contain any form of the word \"password\". This includes: password, pass, word, pwd, passwd and pword.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordContainsUserName": { "description": "If enabled, passwords may not contain any form of the username.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordMaxRepeatedChars": { "description": "The maximum number of consecutive repeated characters allowed in a password. Set to 0 to disable.", "default": 3, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true } } } ] } } }, "backupConfig": { "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "ADEASY", "ADHYBRID", "AD_DB_HYBRID", "DATASOURCE", "FALLBK_CACHE", "INTERNAL" ] }, "scheduleRestricted": { "description": "Users are only able to log in when their assigned schedule is active.", "default": false, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Schedule Restricted" }, "type": "boolean", "x-ignition-non-secret": false }, "failoverProfile": { "description": "If this source is unreachable for authentication, this failover source will be used instead.", "x-form": { "fieldType": "REFERENCE", "category": "GENERAL", "label": "Failover Profile", "referenceType": "ignition/user-source" }, "type": "string", "x-ignition-non-secret": false }, "failoverMode": { "description": "The failover mode to use if a failover source is set. Hard - failover only if this source is unreachable. Soft - try the failover source when a user fails to authenticate with this source.", "default": "HARD", "x-form": { "fieldType": "SELECT", "category": "GENERAL", "label": "Failover Mode" }, "type": "string", "enum": [ "HARD", "SOFT" ], "x-ignition-non-secret": false }, "cacheValidationTimeout": { "description": "The amount of time in minutes between cache updates of the user source. Values less than one disable the cache.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Cache Validation Timeout" }, "type": "number", "x-ignition-non-secret": false }, "lockoutEnabled": { "description": "Lock out a user's account after more than the maximum allowed number of failed authentication attempts occur within the lockout window", "default": true, "x-form": { "fieldType": "CHECKBOX", "category": "GENERAL", "label": "Lockout Enabled" }, "type": "boolean", "x-ignition-non-secret": false }, "lockoutAttempts": { "description": "Maximum number of failed authentication attempts allowed within the lockout window before locking the user out. Values less than one disables lockout.", "default": 5, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Attempts" }, "type": "number", "x-ignition-non-secret": false }, "lockoutWindow": { "description": "The duration of the lockout window in minutes. Values less than one disables lockout.", "default": 15, "x-form": { "fieldType": "NUMBER", "category": "GENERAL", "label": "Lockout Window" }, "type": "number", "x-ignition-non-secret": false } }, "required": [ "type" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/user-source/ADEASY", "title": "ADEASY", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userSearchBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User Search Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userRoleAttribute": { "description": "Attributes of this name on the User object will define the user's roles.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "nestedGroups": { "description": "If this option is checked, nested group membership lookups will be performed.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "groupRoleAttribute": { "description": "Attributes of this name on the Group object will define the group's roles. This setting is only applicable when nested group membership is enabled.", "default": "memberOf", "type": "string", "x-ignition-non-secret": false }, "roleNameAttribute": { "description": "The attribute of this name on the Role object will define the role's name. Leave blank to use the raw value of the attribute defined by User Role Attribute.", "default": "cn", "type": "string", "x-ignition-non-secret": false }, "roleIdAttribute": { "description": "The attribute of this name on the Role object will define the role's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "badgeAttribute": { "description": "The attribute on the User object to define the badge. This setting is required to enable badge-based authentication.", "type": "string", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "roleSearchBase": { "description": "The base folder to search for roles under, such as \"OU=Roles,DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the Role Search Filter. If you specify the root of your tree structure, the search may take a very long time. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Builtin,DC=MyCompany,DC=com)(OU=Users,DC=MyCompany,DC=com)\". If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "roleSearchFilter": { "description": "The LDAP search filter to use to locate roles.", "default": "(objectClass=group)", "type": "string", "x-ignition-non-secret": false }, "badgeSearchFilter": { "description": "The LDAP search filter to use to find a specific user given a badge. Use the placeholder {0} as a standin for the user's badge. Example: (&(objectClass=user)(badge={0}))", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ] }, { "$id": "ignition/user-source/ADHYBRID", "title": "ADHYBRID", "type": "object", "properties": { "ldap": { "description": "LDAP settings", "type": "object", "properties": { "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations.", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users and roles via LDAP.", "type": "string", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-int-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "default": "(&(objectClass=user)(!(objectClass=computer)))", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "default": "(&(objectClass=user)(sAMAccountName={0}))", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "default": "sAMAccountName", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "fullNameAttribute": { "description": "The attribute on the User object to define the full name of the user. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "name", "type": "string", "x-ignition-non-secret": false }, "phoneAttribute": { "description": "The attribute name on the user object that represents the user's phone number. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "telephoneNumber", "type": "string", "x-ignition-non-secret": false }, "emailAttribute": { "description": "The attribute name on the user object that represents the user's email address. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mail", "type": "string", "x-ignition-non-secret": false }, "smsAttribute": { "description": "The attribute name on the user object that represents the phone number that this user receives text messages on. Only used during initial user creation when populate users on-demand feature is enabled.", "default": "mobile", "type": "string", "x-ignition-non-secret": false }, "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, users must be added manually.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "populateUsersOnDemand": { "description": "If true, a user record will be created in the Internal user source from the AD entry of any user who successfully authenticates into AD if the record does not already exist in the Internal user source at the time of authentication.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "ldap" ] }, { "$id": "ignition/user-source/AD_DB_HYBRID", "title": "AD_DB_HYBRID", "type": "object", "properties": { "database": { "description": "Database settings", "type": "object", "properties": { "datasource": { "description": "The database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username.<br/>Example: <tt>SELECT username FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value, and the third column the name of a schedule. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value, schedule FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. Only used if \"List Users from Active Directory\" is false. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "userPropsQuery": { "description": "A query that returns the basic properties for a single user. Only used if \"List Users from Active Directory\" is true. Supported return columns are [firstname, lastname, schedule, language, notes, badge]. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT firstname, lastname, schedule, language, notes, badge FROM user_table WHERE username = ?</tt> ", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. Only used if \"List Users from Active Directory\" is false. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, firstname, lastname, schedule, language, notes, badge, useruuid FROM user_table</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings (i.e. the role names), and must be in the first column of the query's results. The username will be inserted into this query as a parameter.<br/>Example: <tt>SELECT rolename FROM user_role_mapping WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false } }, "required": [ "datasource" ], "x-ignition-non-secret": false }, "ldap": { "description": "LDAP settings", "type": "object", "properties": { "allowAnon": { "description": "If enabled, authentication attempts with blank passwords will be passed through to LDAP, which may choose to accept them. <br/><br/> <strong>WARNING:</strong> it is highly recommended to disable this setting unless you know it is required. AD servers may allow logging in as any user with a blank password when Security Authentication is set to \u201cNone\u201d or \u201cSimple\u201d (even if a provided username does not exist in AD), which is a major security risk.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "authenticationType": { "description": "The authentication type to use when connecting to the LDAP server. AUTO will attempt to use the most secure authentication type available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "NONE", "SIMPLE", "STRONG", "SASL" ], "x-ignition-non-secret": false }, "automaticSuffix": { "description": "If this option is checked, and the suffix is left blank, then the suffix will automatically be assigned a value of \"@&lt;domain&gt;\"", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "connectionPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "The password for the above username." }, "connectionUsername": { "description": "The login name for the gateway to use when querying Active Directory. Used for retrieving the list of users via LDAP.", "type": "string", "x-ignition-non-secret": false }, "domain": { "description": "The Windows domain for this Active Directory server. Examples: \"MyCompany.com\" or \"SuperCorp.local\". If you aren't sure of your domain, ask your network administrator. Leave blank to set advanced properties manually.", "type": "string", "x-ignition-non-secret": false }, "host1": { "description": "The IP address or hostname of your primary domain controller. Example: \"192.168.1.4\" or \"MainServer\"", "type": "string", "x-ignition-non-secret": false }, "port1": { "description": "The port number for the primary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "host2": { "description": "The IP address or hostname of your secondary domain controller (optional). Example: \"192.168.1.5\" or \"BackupServer\"", "type": "string", "x-ignition-non-secret": false }, "port2": { "description": "The port number for the secondary domain controller's LDAP interface.", "default": 389, "minimum": 0, "type": "number", "x-ignition-non-secret": false }, "useSSL": { "description": "Disable to use \"ldap://\" protocol, enabled to use \"ldaps://\"", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "readTimeout": { "description": "The read timeout in milliseconds for LDAP operations. ", "default": 60000, "type": "number", "x-ignition-non-secret": false }, "pageSize": { "description": "The number of entries returned per page of results in a query", "default": 1000, "minimum": 1, "type": "number", "x-ignition-non-secret": false }, "ssoEnabled": { "description": "Whether or not to use Single-Sign-On (SSO) to authenticate AD users. Note that projects must also have this option enabled for SSO to work. <strong>Warning</strong>: it is strongly recommended to disable this feature. See <a href=\"https://links.inductiveautomation.com/83-ad-db-sso-enabled\" target=\"_blank\" rel=\"noopener noreferrer\">the user manual</a> for more details.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "ssoDomain": { "description": "The domain that Windows users must match in order to use SSO. If blank, the main \"Domain\" property will be used.", "type": "string", "x-ignition-non-secret": false }, "userListBase": { "description": "The base folder to search for users under, such as \"DC=MyCompany,DC=com\". The entire subtree under this folder will be searched using the User List Filter. Multiple subtrees can be specified by putting them in parenthesis, like so: \"(OU=Administrators,DC=MyCompany,DC=com)(OU=Operators,DC=MyCompany,DC=com)\" If you leave this blank the whole subtree of the domain controller will be searched.", "type": "string", "x-ignition-non-secret": false }, "userListFilter": { "description": "The LDAP search filter used when querying for the list of all users. Should restrict the type to user.", "type": "string", "x-ignition-non-secret": false }, "userSearchFilter": { "description": "The LDAP search filter to use to find a specific user. Use the placeholder {0} as a standin for the login name.", "type": "string", "x-ignition-non-secret": false }, "userNameAttribute": { "description": "The attribute on the User object to define the username.", "type": "string", "x-ignition-non-secret": false }, "userIdAttribute": { "description": "The attribute on the User object to define the user's unique ID.", "default": { "name": "objectGUID", "binary": true }, "type": "object", "properties": { "name": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "name" ], "x-ignition-non-secret": false }, "userPrefix": { "description": "This prefix will be prepended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "userSuffix": { "description": "This suffix will be appended to the username before an Active Directory bind is attempted for authentication.", "type": "string", "x-ignition-non-secret": false }, "usePrefixAndSuffixForGatewayUser": { "description": "If this option is checked, the username prefix and suffix will be applied to the Gateway username before a bind is attempted.", "default": true, "type": "boolean", "x-ignition-non-secret": false }, "securityProtocol": { "description": "The security protocol to use when connecting to the LDAP server. AUTO will attempt to use the most secure protocol available.", "default": "AUTO", "type": "string", "enum": [ "AUTO", "SSL" ], "x-ignition-non-secret": false }, "saslMechanism": { "description": "An ordered list of space-separated mechanism names. The LDAP provider will use the first mechanism for which it finds an implementation. A blank value will leave this setting unspecified.", "default": "DIGEST-MD5 CRAM-MD5", "type": "string", "x-ignition-non-secret": false }, "saslRealm": { "description": "A realm defines the namespace from which the user is selected. A blank value will leave this setting unspecified. It is highly recommended to set the target realm otherwise any available realm may be chosen. This setting will only be used by mechanisms which support it.", "type": "string", "x-ignition-non-secret": false }, "saslQualityOfProtection": { "description": "A comma-separated list of Quality-of-Protection (QoP) values, the order of which specifies the preference order. There are three well-known values: \"auth\" (authentication only), \"auth-int\" (authentication with integrity protection), and \"auth-conf\" (authentication with integrity and privacy protection). A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "auth-conf,auth-int,auth", "type": "string", "x-ignition-non-secret": false }, "saslProtectionStrength": { "description": "A comma-separated list of privacy protection strength values, the order of which specifies the preference order. The three possible strength values are \"low\", \"medium\", and \"high\". A blank value will leave this setting unspecified. This setting will only be used by mechanisms which support it.", "default": "high,medium,low", "type": "string", "x-ignition-non-secret": false }, "saslMutualAuthentication": { "description": "Enable or disable mutual authentication. This setting will only be used by mechanisms which support it.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "referral": { "description": "Specifies how referrals are to be processed. There are three well-known values: \"follow\" (follow referrals automatically), \"ignore\" (ignore referrals), or \"throw\" (throw a ReferralException when a referral is encountered).", "default": "FOLLOW", "type": "string", "enum": [ "FOLLOW", "IGNORE", "THROW" ], "x-ignition-non-secret": false }, "extraUserAttributes": { "description": "A list of LDAP attributes to user property mappings that define additional user attributes to request from the LDAP server and to set on the user object.", "type": "array", "items": { "type": "object", "properties": { "attribute": { "description": "The name used to look up the attribute in LDAP.", "type": "string", "x-ignition-non-secret": false }, "property": { "description": "The property name that the attribute value will be stored under in the user object. If not provided, the attribute name will be used.", "type": "string", "x-ignition-non-secret": false }, "binary": { "description": "Treat the LDAP attribute's value as a byte[] array instead of as a String.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "multiValued": { "description": "Treat the property as a multi-valued property instead of single-valued. The values will be retrievable on the user object as a list.", "default": false, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "attribute" ] }, "x-ignition-non-secret": false } }, "required": [ "host1", "port1" ], "x-ignition-non-secret": false }, "listUsersFromAD": { "description": "If true, Active Directory will be queried for the list of all users. If false, the database will be queried instead.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "database", "ldap" ] }, { "$id": "ignition/user-source/DATASOURCE", "title": "DATASOURCE", "type": "object", "properties": { "datasource": { "description": "Choose the database connection this user source will use.", "type": "string", "x-ignition-non-secret": false }, "mode": { "description": "In Automatic mode, tables will be created for you and all interaction with the database is handled automatically. In Manual mode, you write queries by hand against tables that you've created. Management of users (adding, removing etc) is not supported in manual mode.", "default": "Automatic", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "authQuery": { "description": "A query that must return a row if the given username and password combination provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent username first and then password. The returned row may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT useruuid, firstname, lastname, schedule FROM USERS WHERE username = ? AND password = MD5(?)</tt>", "type": "string", "x-ignition-non-secret": false }, "badgeAuthQuery": { "description": "A query that must return a row if the given badge provided is valid. The query will be run as a prepared statement, so use question mark (?) to represent the badge. The returned row must contain the username and may contain the user's basic properties under the column names: [firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS WHERE badge = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "roleQuery": { "description": "A query that returns all possible roles that any user could be a member of. At least one column must be returned: the rolename. Other columns are optional, supported columns are: [rolename, roleuuid].<br/>Example: <tt>SELECT rolename, roleuuid FROM roles</tt>", "type": "string", "x-ignition-non-secret": false }, "userRoleQuery": { "description": "A query that returns all of the roles that the provided user belongs to. The roles must be strings and must be in the first column of the query's results. The query will be run as a prepared statement with one parameter: the username.<br/>Example: <tt>SELECT rolename FROM mapping_table WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "findUserQuery": { "description": "A query that must return a row if a user with the given username exists. The query will be run as a prepared statement, so use question mark (?) to represent username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule, FROM USERS WHERE username = ?</tt>", "type": "string", "x-ignition-non-secret": false }, "userQuery": { "description": "A query that returns a row containing each username. There must be at least one column: the username. Other columns are optional, supported columns are: [username, firstname, lastname, schedule, language, notes, badge, useruuid]. If useruuid is present, it must be returned in all queries that support it.<br/>Example: <tt>SELECT username, useruuid, firstname, lastname, schedule FROM USERS</tt>", "type": "string", "x-ignition-non-secret": false }, "contactInfoQuery": { "description": "A query that returns all of the contact info for the user. The first column must be the contact type, the second column the contact value. Optional, may be blank.<br/>Example: <tt>SELECT contact_type, contact_value FROM user_contact WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustmentQuery": { "description": "A query that returns the upcoming schedule adjustments for the user. Columns must be Start(date), End(date), Available(boolean), Note(string). Optional, may be blank.<br/>Example: <tt>SELECT start_date, end_date, is_available, note FROM user_schedule_adj WHERE username=?</tt>", "type": "string", "x-ignition-non-secret": false }, "extraPropsQuery": { "description": "A query that returns name, value pairs of extra properties for the user. Will be run with one parameter: the username. Optional, may be blank. <br/>Example: <tt>SELECT prop_name, prop_value FROM user_props WHERE username=?</tt> ", "type": "string", "x-ignition-non-secret": false }, "tableNamePrefix": { "description": "When in automatic mode, tables will be created to store the users and roles. They will have this prefix.", "default": "scada_", "type": "string", "x-ignition-non-secret": false }, "enableUuids": { "description": "When in automatic mode, UUIDs will be generated for user and role IDs.", "default": true, "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "datasource" ] }, { "$id": "ignition/user-source/FALLBK_CACHE", "title": "FALLBK_CACHE", "type": "object", "properties": { "cacheRetention": { "description": "Number of days that the cache will retain recently used credentials.", "default": 15, "minimum": 1, "type": "number", "x-ignition-non-secret": false } } }, { "$id": "ignition/user-source/INTERNAL", "title": "INTERNAL", "type": "object", "properties": { "passwordMaxAge": { "description": "The maximum age (in days) that a password is valid for. A value of zero disables password expiration.", "default": 0, "minimum": 0, "type": "number", "x-ignition-non-secret": true }, "passwordMinLength": { "description": "Passwords must be at least this many characters long.", "default": 8, "minimum": 1, "maximum": 20, "type": "number", "x-ignition-non-secret": true }, "passwordComplexity": { "description": "The number of character types (lowercase letters, uppercase letters, digits, punctuation) each password must contain. For example, a value of 3 means passwords must have 3 of the 4 character types to be considered valid.", "default": 3, "minimum": 1, "maximum": 4, "type": "number", "x-ignition-non-secret": true }, "passwordHistory": { "description": "The number of previous passwords to store. Passwords in the history list may not be re-used. A value of zero disables this feature.", "default": 0, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true }, "passwordContainsPassword": { "description": "If enabled, passwords may not contain any form of the word \"password\". This includes: password, pass, word, pwd, passwd and pword.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordContainsUserName": { "description": "If enabled, passwords may not contain any form of the username.", "default": true, "type": "boolean", "x-ignition-non-secret": true }, "passwordMaxRepeatedChars": { "description": "The maximum number of consecutive repeated characters allowed in a password. Set to 0 to disable.", "default": 3, "minimum": 0, "maximum": 10, "type": "number", "x-ignition-non-secret": true } } } ] } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/move": { "post": { "tags": [ "config-management" ], "summary": "Move a Resource", "description": "Moves a resource to a different collection.", "parameters": [ { "name": "resourceType", "in": "query", "description": "The resource type to move, in the format 'moduleId/typeId'", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "ignition/database-connection" } }, { "name": "signature", "in": "query", "description": "The signature of the resource to move", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "fromName", "in": "query", "description": "The name of the resource to move. (required for non-singleton types)", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "fromCollection", "in": "query", "description": "The resource collection to move from. If omitted, will automatically use the active definition", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } }, { "name": "toCollection", "in": "query", "description": "The resource collection to move to. If omitted, will use the same collection as the source resource", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The request is invalid" }, "500": { "description": "There was an error creating the new resource", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "404": { "description": "The resource to move was not found" }, "200": { "description": "The operation executed successfully", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } }, "409": { "description": "There was a conflict at the new name/collection.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "description": "Indicates whether the resource(s) were successfully added or updated" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.alarm-notification/alarm-notification-profile": { "get": { "tags": [ "alarm-notification-profile" ], "summary": "Get Alarm Notification Profiles Names", "description": "List all Alarm Notification Profiles resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.eam/agent-group": { "get": { "tags": [ "agent-group" ], "summary": "Get Agent Groups Names", "description": "List all Agent Groups resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.eam/agent-management": { "get": { "tags": [ "agent-management" ], "summary": "Get Agent Management Names", "description": "List all Agent Management resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.eam/eam-tasks": { "get": { "tags": [ "eam-tasks" ], "summary": "Get EAM Agent Task Names", "description": "List all EAM Agent Task resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.eam/hw-license-management": { "get": { "tags": [ "license-management" ], "summary": "Get Hardware License Names", "description": "List all Hardware License resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.eam/leased-license-management": { "get": { "tags": [ "license-management" ], "summary": "Get Leased License Names", "description": "List all Leased License resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.eam/module-certificates": { "get": { "tags": [ "module-certificate" ], "summary": "Get Module Certificate Names", "description": "List all Module Certificate resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.eam/module-eulas": { "get": { "tags": [ "module-eula" ], "summary": "Get Module EULA Names", "description": "List all Module EULA resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.eam/remote-upgrade": { "get": { "tags": [ "remote-upgrade" ], "summary": "Get Remote Upgrade Names", "description": "List all Remote Upgrade resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.historian/historian-provider": { "get": { "tags": [ "historian-config" ], "summary": "Get Historian Names", "description": "List all Historian resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig": { "get": { "tags": [ "local-devices" ], "summary": "Get Local Devices Names", "description": "List all Local Devices resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.opcua/device": { "get": { "tags": [ "device" ], "summary": "Get Devices Names", "description": "List all Devices resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.perspective/fonts": { "get": { "tags": [ "config-perspective-fonts" ], "summary": "Get Fonts Names", "description": "List all Fonts resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.perspective/icons": { "get": { "tags": [ "config-perspective-icons" ], "summary": "Get Icons Names", "description": "List all Icons resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/com.inductiveautomation.perspective/themes": { "get": { "tags": [ "config-perspective-themes" ], "summary": "Get Themes Names", "description": "List all Themes resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/alarm-journal": { "get": { "tags": [ "alarm-journal-resources" ], "summary": "Get Alarm Journal Settings Names", "description": "List all Alarm Journal Settings resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/api-token": { "get": { "tags": [ "config-api-token" ], "summary": "Get API Token Names", "description": "List all API Token resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/audit-profile": { "get": { "tags": [ "config-audit-profiles" ], "summary": "Get Audit Profiles Names", "description": "List all Audit Profiles resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/database-connection": { "get": { "tags": [ "config-databases" ], "summary": "Get Database Connection Names", "description": "List all Database Connection resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/database-driver": { "get": { "tags": [ "config-databases" ], "summary": "Get JDBC Driver Names", "description": "List all JDBC Driver resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/database-translator": { "get": { "tags": [ "config-databases" ], "summary": "Get Database Translator Names", "description": "List all Database Translator resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/email-profile": { "get": { "tags": [ "config-email-profile" ], "summary": "Get Email Profile Settings Names", "description": "List all Email Profile Settings resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/gateway-network-incoming": { "get": { "tags": [ "config-gateway-network" ], "summary": "Get Incoming Connection Settings Names", "description": "List all Incoming Connection Settings resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/gateway-network-outgoing": { "get": { "tags": [ "config-gateway-network" ], "summary": "Get Outgoing Connection Settings Names", "description": "List all Outgoing Connection Settings resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/holiday": { "get": { "tags": [ "config-alarm" ], "summary": "Get Holiday Names", "description": "List all Holiday resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/identity-provider": { "get": { "tags": [ "config-identity-provider" ], "summary": "Get Identity Provider Names", "description": "List all Identity Provider resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/keyboard_layout": { "get": { "tags": [ "config-keyboard-layouts" ], "summary": "Get Keyboard Layouts Names", "description": "List all Keyboard Layouts resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/metrics-dashboard": { "get": { "tags": [ "config-metrics-dashboard" ], "summary": "Get Metrics Dashboard Names", "description": "List all Metrics Dashboard resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/oauth2-client": { "get": { "tags": [ "config-oauth2-client" ], "summary": "Get OAuth2 Client Names", "description": "List all OAuth2 Client resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/opc-connection": { "get": { "tags": [ "opc-connection" ], "summary": "Get OPC Connections Names", "description": "List all OPC Connections resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/roster-config": { "get": { "tags": [ "roster-config" ], "summary": "Get Rosters Names", "description": "List all Rosters resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/schedule": { "get": { "tags": [ "config-alarm" ], "summary": "Get Schedule Names", "description": "List all Schedule resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/secret-provider": { "get": { "tags": [ "config-secret-provider" ], "summary": "Get Secret Provider Names", "description": "List all Secret Provider resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/security-zone": { "get": { "tags": [ "config-security-zone" ], "summary": "Get Security Zones Names", "description": "List all Security Zones resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/service-connector": { "get": { "tags": [ "service-connectors" ], "summary": "Get Service Connectors Names", "description": "List all Service Connectors resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/store-and-forward-engine": { "get": { "tags": [ "config-store-forward" ], "summary": "Get Store and Forward Engine Names", "description": "List all Store and Forward Engine resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/tag-provider": { "get": { "tags": [ "config-tag-provider" ], "summary": "Get Tag Providers Names", "description": "List all Tag Providers resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/names/ignition/user-source": { "get": { "tags": [ "config-user-source" ], "summary": "Get User Sources Names", "description": "List all User Sources resources, including each resource\u2019s name and enabled status", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "description": "Name of the resource", "type": "string", "x-ignition-non-secret": false }, "enabled": { "description": "Whether the resource is currently enabled", "type": "boolean", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.alarm-notification/alarm-notification-profile/{name}": { "post": { "tags": [ "alarm-notification-profile" ], "summary": "Rename Alarm Notification Profiles", "description": "Change the name of a Alarm Notification Profiles resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.eam/agent-group/{name}": { "post": { "tags": [ "agent-group" ], "summary": "Rename Agent Groups", "description": "Change the name of a Agent Groups resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.eam/agent-management/{name}": { "post": { "tags": [ "agent-management" ], "summary": "Rename Agent Management", "description": "Change the name of a Agent Management resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.eam/eam-tasks/{name}": { "post": { "tags": [ "eam-tasks" ], "summary": "Rename EAM Agent Task", "description": "Change the name of a EAM Agent Task resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.eam/hw-license-management/{name}": { "post": { "tags": [ "license-management" ], "summary": "Rename Hardware License", "description": "Change the name of a Hardware License resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.eam/leased-license-management/{name}": { "post": { "tags": [ "license-management" ], "summary": "Rename Leased License", "description": "Change the name of a Leased License resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.eam/module-certificates/{name}": { "post": { "tags": [ "module-certificate" ], "summary": "Rename Module Certificate", "description": "Change the name of a Module Certificate resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.eam/module-eulas/{name}": { "post": { "tags": [ "module-eula" ], "summary": "Rename Module EULA", "description": "Change the name of a Module EULA resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.eam/remote-upgrade/{name}": { "post": { "tags": [ "remote-upgrade" ], "summary": "Rename Remote Upgrade", "description": "Change the name of a Remote Upgrade resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.historian/historian-provider/{name}": { "post": { "tags": [ "historian-config" ], "summary": "Rename Historian", "description": "Change the name of a Historian resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig/{name}": { "post": { "tags": [ "local-devices" ], "summary": "Rename Local Devices", "description": "Change the name of a Local Devices resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.opcua/device/{name}": { "post": { "tags": [ "device" ], "summary": "Rename Devices", "description": "Change the name of a Devices resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.perspective/fonts/{name}": { "post": { "tags": [ "config-perspective-fonts" ], "summary": "Rename Fonts", "description": "Change the name of a Fonts resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.perspective/icons/{name}": { "post": { "tags": [ "config-perspective-icons" ], "summary": "Rename Icons", "description": "Change the name of a Icons resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/com.inductiveautomation.perspective/themes/{name}": { "post": { "tags": [ "config-perspective-themes" ], "summary": "Rename Themes", "description": "Change the name of a Themes resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/alarm-journal/{name}": { "post": { "tags": [ "alarm-journal-resources" ], "summary": "Rename Alarm Journal Settings", "description": "Change the name of a Alarm Journal Settings resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/api-token/{name}": { "post": { "tags": [ "config-api-token" ], "summary": "Rename API Token", "description": "Change the name of a API Token resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/audit-profile/{name}": { "post": { "tags": [ "config-audit-profiles" ], "summary": "Rename Audit Profiles", "description": "Change the name of a Audit Profiles resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/database-connection/{name}": { "post": { "tags": [ "config-databases" ], "summary": "Rename Database Connection", "description": "Change the name of a Database Connection resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/database-driver/{name}": { "post": { "tags": [ "config-databases" ], "summary": "Rename JDBC Driver", "description": "Change the name of a JDBC Driver resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/database-translator/{name}": { "post": { "tags": [ "config-databases" ], "summary": "Rename Database Translator", "description": "Change the name of a Database Translator resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/email-profile/{name}": { "post": { "tags": [ "config-email-profile" ], "summary": "Rename Email Profile Settings", "description": "Change the name of a Email Profile Settings resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/gateway-network-outgoing/{name}": { "post": { "tags": [ "config-gateway-network" ], "summary": "Rename Outgoing Connection Settings", "description": "Change the name of a Outgoing Connection Settings resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/holiday/{name}": { "post": { "tags": [ "config-alarm" ], "summary": "Rename Holiday", "description": "Change the name of a Holiday resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/identity-provider/{name}": { "post": { "tags": [ "config-identity-provider" ], "summary": "Rename Identity Provider", "description": "Change the name of a Identity Provider resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/keyboard_layout/{name}": { "post": { "tags": [ "config-keyboard-layouts" ], "summary": "Rename Keyboard Layouts", "description": "Change the name of a Keyboard Layouts resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/metrics-dashboard/{name}": { "post": { "tags": [ "config-metrics-dashboard" ], "summary": "Rename Metrics Dashboard", "description": "Change the name of a Metrics Dashboard resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/oauth2-client/{name}": { "post": { "tags": [ "config-oauth2-client" ], "summary": "Rename OAuth2 Client", "description": "Change the name of a OAuth2 Client resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/opc-connection/{name}": { "post": { "tags": [ "opc-connection" ], "summary": "Rename OPC Connections", "description": "Change the name of a OPC Connections resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/roster-config/{name}": { "post": { "tags": [ "roster-config" ], "summary": "Rename Rosters", "description": "Change the name of a Rosters resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/schedule/{name}": { "post": { "tags": [ "config-alarm" ], "summary": "Rename Schedule", "description": "Change the name of a Schedule resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/secret-provider/{name}": { "post": { "tags": [ "config-secret-provider" ], "summary": "Rename Secret Provider", "description": "Change the name of a Secret Provider resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/security-zone/{name}": { "post": { "tags": [ "config-security-zone" ], "summary": "Rename Security Zones", "description": "Change the name of a Security Zones resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/service-connector/{name}": { "post": { "tags": [ "service-connectors" ], "summary": "Rename Service Connectors", "description": "Change the name of a Service Connectors resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/store-and-forward-engine/{name}": { "post": { "tags": [ "config-store-forward" ], "summary": "Rename Store and Forward Engine", "description": "Change the name of a Store and Forward Engine resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/tag-provider/{name}": { "post": { "tags": [ "config-tag-provider" ], "summary": "Rename Tag Providers", "description": "Change the name of a Tag Providers resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/rename/ignition/user-source/{name}": { "post": { "tags": [ "config-user-source" ], "summary": "Rename User Sources", "description": "Change the name of a User Sources resource, and update all references to it", "parameters": [ { "name": "name", "in": "path", "description": "The current name of the resource", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "collection", "in": "query", "description": "The configuration collection to rename the resource in", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Request body specifies new name and optional confirmation flag", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "description": "The new name for the specified resource.", "type": "string", "x-ignition-non-secret": false }, "references": { "description": "What to do if the rename would affect references", "type": "string", "enum": [ "ABORT", "IGNORE", "UPDATE" ], "x-ignition-non-secret": false } }, "required": [ "name" ] }, "example": { "name": "MyNewName", "references": "UPDATE" } } } }, "responses": { "400": { "description": "Missing, invalid or in-use 'name' parameter or invalid body" }, "404": { "description": "Resource not found" }, "200": { "description": "Resource renamed successfully, OR resource not renamed if references found and no reference strategy specified", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" }, "changes": { "type": "array", "description": "List of changed resources, with new signatures", "items": { "type": "object", "properties": { "name": { "description": "Name of the changed resource", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "Type of the changed resource", "type": "string", "x-ignition-non-secret": false }, "collection": { "description": "The resource collection that the definition was changed in", "type": "string", "x-ignition-non-secret": false }, "newSignature": { "description": "The new resource signature after the change was applied", "type": "string", "x-ignition-non-secret": false } } } }, "problem": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } }, "description": "If the operation failed, this field will be populated with the exception that was thrown." }, "references": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "x-ignition-non-secret": false }, "name": { "type": "string", "x-ignition-non-secret": false }, "property": { "type": "string", "x-ignition-non-secret": false } }, "description": "References from resources that would be changed if the operation is confirmed." }, "description": "If the operation would impact other resources, this field will be populated with the paths of those resources. The operation will not be performed until the client confirms the operation by sending a request with the same parameters, including the confirm field set to true." } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/com.inductiveautomation.eam/event-thresholds": { "get": { "tags": [ "event-thresholds" ], "summary": "Get Event Thresholds Config", "description": "Retrieve configuration details about the Event Thresholds resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "alarmOnActivity": { "description": "If true, alarms will be generated for agent events such as disconnection.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnMetrics": { "description": "If true, alarms will be generated for out-of-range metrics.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnTasks": { "description": "If true, alarms will be generated when an EAM scheduled task fails.", "type": "boolean", "x-ignition-non-secret": false }, "warningPriority": { "description": "The priority to set on alarms when a warning condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "errorPriority": { "description": "The priority to set on alarms when an error condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "activePipeline": { "description": "The alarm notification pipeline to use when reporting EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "ackPipeline": { "description": "The alarm notification pipeline to use when acknowledging EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "connectionWarning": { "description": "Creates a warning event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "connectionError": { "description": "Creates an error event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "cpuWarning": { "description": "Creates a warning event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "cpuError": { "description": "Creates an error event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "memWarning": { "description": "Creates a warning event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "memError": { "description": "Creates an error event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "errPerMinWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerMinError": { "description": "Creates an error event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourError": { "description": "Creates an error event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsWarning": { "description": "Creates a warning event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsError": { "description": "Creates an error event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsWarning": { "description": "Creates a warning event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsError": { "description": "Creates an error event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilWarning": { "description": "Creates a warning event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilError": { "description": "Creates an error event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "alarmOnActivity": { "description": "If true, alarms will be generated for agent events such as disconnection.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnMetrics": { "description": "If true, alarms will be generated for out-of-range metrics.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnTasks": { "description": "If true, alarms will be generated when an EAM scheduled task fails.", "type": "boolean", "x-ignition-non-secret": false }, "warningPriority": { "description": "The priority to set on alarms when a warning condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "errorPriority": { "description": "The priority to set on alarms when an error condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "activePipeline": { "description": "The alarm notification pipeline to use when reporting EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "ackPipeline": { "description": "The alarm notification pipeline to use when acknowledging EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "connectionWarning": { "description": "Creates a warning event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "connectionError": { "description": "Creates an error event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "cpuWarning": { "description": "Creates a warning event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "cpuError": { "description": "Creates an error event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "memWarning": { "description": "Creates a warning event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "memError": { "description": "Creates an error event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "errPerMinWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerMinError": { "description": "Creates an error event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourError": { "description": "Creates an error event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsWarning": { "description": "Creates a warning event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsError": { "description": "Creates an error event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsWarning": { "description": "Creates a warning event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsError": { "description": "Creates an error event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilWarning": { "description": "Creates a warning event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilError": { "description": "Creates an error event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/com.inductiveautomation.eam/module-settings": { "get": { "tags": [ "module-settings" ], "summary": "Get Module Settings Config", "description": "Retrieve configuration details about the Module Settings resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "installMode": { "description": "Set installMode to configure EAM as a controller or an agent", "type": "string", "enum": [ "Controller", "Agent", "NotInstalled" ], "x-ignition-non-secret": false }, "controllerSettings": { "type": "object", "properties": { "eventTableName": { "description": "The database table name that will be used to store EAM events", "type": "string", "x-ignition-non-secret": false }, "archiveLocationMode": { "description": "If 'Automatic', the system will manage the location of the Agent archive. If 'Manual', the archivePath value will be used.", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "archivePath": { "description": "The file path to save Gateway backups, archived modules, and other files.", "type": "string", "x-ignition-non-secret": false }, "lowDiskThresholdMB": { "description": "Value is in megabytes. Errors will be reported in this Gateway when the disk used for archiving drops below this value.", "type": "number", "x-ignition-non-secret": false }, "datasource": { "description": "The database connection to use for recording agent history.", "type": "string", "x-ignition-non-secret": false }, "maxRetainedBackupCount": { "description": "Maximum number of backups that will be retained for each agent.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionAge": { "description": "Maximum age of backups that will be retained for each agent. Age time unit is determined by the backupRetentionTimeUnit setting.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionTimeUnit": { "type": "string", "enum": [ "Days", "Weeks", "Months", "Years" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "agentSettings": { "type": "object", "properties": { "controllerServerId": { "description": "Server name of the EAM controller gateway", "type": "string", "x-ignition-non-secret": false }, "sendStatsInterval": { "description": "The interval in seconds that the agent will send its statistics to the controller Gateway.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http connect timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http read timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "forwardLeasedLicense": { "description": "If true, this setting will forward leased license activation and renewal requests to the controller. The controller will execute the leased requests on behalf of the agent.", "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "installMode": { "description": "Set installMode to configure EAM as a controller or an agent", "type": "string", "enum": [ "Controller", "Agent", "NotInstalled" ], "x-ignition-non-secret": false }, "controllerSettings": { "type": "object", "properties": { "eventTableName": { "description": "The database table name that will be used to store EAM events", "type": "string", "x-ignition-non-secret": false }, "archiveLocationMode": { "description": "If 'Automatic', the system will manage the location of the Agent archive. If 'Manual', the archivePath value will be used.", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "archivePath": { "description": "The file path to save Gateway backups, archived modules, and other files.", "type": "string", "x-ignition-non-secret": false }, "lowDiskThresholdMB": { "description": "Value is in megabytes. Errors will be reported in this Gateway when the disk used for archiving drops below this value.", "type": "number", "x-ignition-non-secret": false }, "datasource": { "description": "The database connection to use for recording agent history.", "type": "string", "x-ignition-non-secret": false }, "maxRetainedBackupCount": { "description": "Maximum number of backups that will be retained for each agent.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionAge": { "description": "Maximum age of backups that will be retained for each agent. Age time unit is determined by the backupRetentionTimeUnit setting.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionTimeUnit": { "type": "string", "enum": [ "Days", "Weeks", "Months", "Years" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "agentSettings": { "type": "object", "properties": { "controllerServerId": { "description": "Server name of the EAM controller gateway", "type": "string", "x-ignition-non-secret": false }, "sendStatsInterval": { "description": "The interval in seconds that the agent will send its statistics to the controller Gateway.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http connect timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http read timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "forwardLeasedLicense": { "description": "If true, this setting will forward leased license activation and renewal requests to the controller. The controller will execute the leased requests on behalf of the agent.", "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/com.inductiveautomation.opcua/access-control": { "get": { "tags": [ "access-control" ], "summary": "Get OPC UA Access Control Config Config", "description": "Retrieve configuration details about the OPC UA Access Control Config resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "defaultDeviceRolePermissionMappings": { "description": "Default role permission mappings for devices.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "defaultTagProviderRolePermissionMappings": { "description": "Default role permission mappings for tags.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "tagProviderRolePermissionMappings": { "description": "Role permission mappings for specific tag providers.", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } } } } }, "backupConfig": { "properties": { "defaultDeviceRolePermissionMappings": { "description": "Default role permission mappings for devices.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "defaultTagProviderRolePermissionMappings": { "description": "Default role permission mappings for tags.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "tagProviderRolePermissionMappings": { "description": "Role permission mappings for specific tag providers.", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } } } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/com.inductiveautomation.opcua/server-config": { "get": { "tags": [ "server" ], "summary": "Get OPC UA Server Config Config", "description": "Retrieve configuration details about the OPC UA Server Config resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "bindPort": { "type": "number", "x-ignition-non-secret": false }, "bindAddresses": { "type": "array", "items": { "type": "string", "bindAddresses": "string" }, "x-ignition-non-secret": false }, "endpointAddresses": { "type": "array", "items": { "type": "string", "endpointAddresses": "string" }, "x-ignition-non-secret": false }, "securityPolicies": { "type": "array", "items": { "type": "string", "securityPolicies": "string" }, "x-ignition-non-secret": false }, "messageSecurityModes": { "type": "array", "items": { "type": "string", "messageSecurityModes": "string" }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "anonymousAccessAllowed": { "type": "boolean", "x-ignition-non-secret": false }, "authenticationProfile": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "readOnlyWhenInactive": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "exposedTagsEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxSessionCount": { "type": "number", "x-ignition-non-secret": false }, "gdsPushEnabled": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "bindPort": { "type": "number", "x-ignition-non-secret": false }, "bindAddresses": { "type": "array", "items": { "type": "string", "bindAddresses": "string" }, "x-ignition-non-secret": false }, "endpointAddresses": { "type": "array", "items": { "type": "string", "endpointAddresses": "string" }, "x-ignition-non-secret": false }, "securityPolicies": { "type": "array", "items": { "type": "string", "securityPolicies": "string" }, "x-ignition-non-secret": false }, "messageSecurityModes": { "type": "array", "items": { "type": "string", "messageSecurityModes": "string" }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "anonymousAccessAllowed": { "type": "boolean", "x-ignition-non-secret": false }, "authenticationProfile": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "readOnlyWhenInactive": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "exposedTagsEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxSessionCount": { "type": "number", "x-ignition-non-secret": false }, "gdsPushEnabled": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/com.inductiveautomation.sfc/chart-settings": { "get": { "tags": [ "sfc-config" ], "summary": "Get SFC Settings Config", "description": "Retrieve configuration details about the SFC Settings resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "chartRecordingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "recordingsPerChart": { "type": "number", "x-ignition-non-secret": false }, "pruneAge": { "type": "number", "x-ignition-non-secret": false }, "pruneAgeUnits": { "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "chartRecordingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "recordingsPerChart": { "type": "number", "x-ignition-non-secret": false }, "pruneAge": { "type": "number", "x-ignition-non-secret": false }, "pruneAgeUnits": { "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/cobranding": { "get": { "tags": [ "config-perspective-branding" ], "summary": "Get Brand Customization Config", "description": "Retrieve configuration details about the Brand Customization resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "backgroundColor": { "type": "string", "x-ignition-non-secret": false }, "textColor": { "type": "string", "x-ignition-non-secret": false }, "buttonColor": { "type": "string", "x-ignition-non-secret": false }, "buttonTextColor": { "type": "string", "x-ignition-non-secret": false }, "logo": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "favicon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "appIcon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "logoType": { "type": "string", "x-ignition-non-secret": false }, "logoName": { "type": "string", "x-ignition-non-secret": false }, "faviconName": { "type": "string", "x-ignition-non-secret": false }, "appIconName": { "type": "string", "x-ignition-non-secret": false }, "faviconSize": { "type": "string", "x-ignition-non-secret": false }, "appIconSize": { "type": "string", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "backgroundColor": { "type": "string", "x-ignition-non-secret": false }, "textColor": { "type": "string", "x-ignition-non-secret": false }, "buttonColor": { "type": "string", "x-ignition-non-secret": false }, "buttonTextColor": { "type": "string", "x-ignition-non-secret": false }, "logo": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "favicon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "appIcon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "logoType": { "type": "string", "x-ignition-non-secret": false }, "logoName": { "type": "string", "x-ignition-non-secret": false }, "faviconName": { "type": "string", "x-ignition-non-secret": false }, "appIconName": { "type": "string", "x-ignition-non-secret": false }, "faviconSize": { "type": "string", "x-ignition-non-secret": false }, "appIconSize": { "type": "string", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/edge-system-properties": { "get": { "tags": [ "config-edge-system-properties" ], "summary": "Get Edge System Properties Config", "description": "Retrieve configuration details about the Edge System Properties resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "projectName": { "default": "Edge", "description": "The name of the default Edge project. Only one project can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "tagProvider": { "description": "The tag provider to be used for Edge. Only one realtime tag provider can exist in an Edge gateway.\n", "default": "edge", "type": "string", "x-ignition-non-secret": false }, "historianName": { "default": "Edge Historian", "description": "The name of the default Edge historian. Only one historian can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "visualizationName": { "default": "VISION", "type": "string", "enum": [ "VISION", "PERSPECTIVE" ], "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "projectName": { "default": "Edge", "description": "The name of the default Edge project. Only one project can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "tagProvider": { "description": "The tag provider to be used for Edge. Only one realtime tag provider can exist in an Edge gateway.\n", "default": "edge", "type": "string", "x-ignition-non-secret": false }, "historianName": { "default": "Edge Historian", "description": "The name of the default Edge historian. Only one historian can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "visualizationName": { "default": "VISION", "type": "string", "enum": [ "VISION", "PERSPECTIVE" ], "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/gateway-network-proxy-rules": { "get": { "tags": [ "config-gateway-network" ], "summary": "Get Proxy Rules Config", "description": "Retrieve configuration details about the Proxy Rules resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "proxyRules": { "type": "array", "items": { "properties": { "sourceGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "destinationGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "action": { "type": "string", "description": "The action to take when a proxy route between a source gateway and a destination gateway matches this rule. If set to Deny, the proxy route will not be reported to remote gateways. Valid values are 'Allow' and 'Deny'." }, "description": { "type": "string", "description": "A description of the proxy rule." } }, "required": [ "sourceGateways", "destinationGateways" ] }, "description": "A list of proxy rules. Rule rank is determined by the list order, with rules at the beginning of the list taking precedence over later ones." } } }, "backupConfig": { "properties": { "proxyRules": { "type": "array", "items": { "properties": { "sourceGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "destinationGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "action": { "type": "string", "description": "The action to take when a proxy route between a source gateway and a destination gateway matches this rule. If set to Deny, the proxy route will not be reported to remote gateways. Valid values are 'Allow' and 'Deny'." }, "description": { "type": "string", "description": "A description of the proxy rule." } }, "required": [ "sourceGateways", "destinationGateways" ] }, "description": "A list of proxy rules. Rule rank is determined by the list order, with rules at the beginning of the list taking precedence over later ones." } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/gateway-network-queue-settings": { "get": { "tags": [ "config-gateway-network" ], "summary": "Get Queue Settings Config", "description": "Retrieve configuration details about the Queue Settings resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "queueSettings": { "type": "array", "items": { "properties": { "queueId": { "type": "string", "description": "The queue ID" }, "maxActive": { "type": "integer", "description": "The maximum number of active messages allowed in the queue" }, "timeoutMillis": { "type": "number", "description": "The timeout in milliseconds for messages in the queue" } } }, "description": "A list of queue settings." } } }, "backupConfig": { "properties": { "queueSettings": { "type": "array", "items": { "properties": { "queueId": { "type": "string", "description": "The queue ID" }, "maxActive": { "type": "integer", "description": "The maximum number of active messages allowed in the queue" }, "timeoutMillis": { "type": "number", "description": "The timeout in milliseconds for messages in the queue" } } }, "description": "A list of queue settings." } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/gateway-network-settings": { "get": { "tags": [ "config-gateway-network" ], "summary": "Get General Gateway Network Settings Config", "description": "Retrieve configuration details about the General Gateway Network Settings resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "requireSSL": { "default": true, "description": "If true, only connections that use SSL to encrypt traffic will be allowed. This setting only applies to incoming connections.\n", "type": "boolean", "x-ignition-non-secret": false }, "requireTwoWayAuth": { "default": true, "description": "Enforces two-way SSL authentication. If true, you will need to install the remote machine's certificate on this machine, in addition to manual approval of this machine's certificate on the remote machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "receiveQueueMax": { "default": 100, "description": "Number of received messages that can be held until they are processed by the local system. When this capacity is exceeded, new messages are rejected and errors are reported to the remote gateway. Applies to incoming connections.\n", "type": "number", "x-ignition-non-secret": false }, "overloadWaitSecs": { "default": 60, "description": "The number of seconds that a remote machine is instructed to wait before resuming message delivery. This setting is used when an overload is detected on the local machine.\n", "type": "number", "x-ignition-non-secret": false }, "allowIncoming": { "default": true, "description": "If false, only outward connections defined on this gateway will be allowed.\n", "type": "boolean", "x-ignition-non-secret": false }, "securityPolicy": { "default": "ApprovedOnly", "description": "Dictates what connections are allowed. If set to 'Approved', incoming connections must be approved from the Incoming Connections page.\n", "type": "string", "enum": [ "Unrestricted", "ApprovedOnly", "SpecifiedList" ], "x-ignition-non-secret": false }, "whitelist": { "default": "", "description": "If connection policy is set to Specified List, this is the comma-separated list of ${GATEWAY} names which will be allowed to connect.\n", "type": "string", "x-ignition-non-secret": false }, "allowedProxyHops": { "default": 0, "description": "The maximum number of proxy hops which could be used to reach the destination Gateway. Any number less than or equal to zero is equivalent to no proxy hops allowed.\n", "type": "number", "x-ignition-non-secret": false }, "websocketSessionIdleTimeout": { "default": 30000, "description": "The maximum number of milliseconds that a websocket is allowed to remain idle before it is closed. This value should always be set higher than outgoing connection ping rates to avoid premature connection termination.\n", "type": "number", "x-ignition-non-secret": false }, "tempFilesMaxAgeHours": { "default": 24, "description": "The maximum number of hours that a gateway network temporary file will be retained. Files older than this value will be purged. Set to 0 to disable cleaning of temporary files.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingRateMillis": { "default": 5000, "description": "How often, in milliseconds, to send a ping to a remote machine. This will allow an incoming connection's health to be monitored. Set to 0 to disable pings sent from an incoming connection.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingTimeoutMillis": { "default": 300, "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingMaxMissed": { "default": 12, "description": "The amount of missed pings that will force an incoming connection to be considered faulted.\n", "type": "number", "x-ignition-non-secret": false }, "proxyInterceptServiceCalls": { "default": false, "description": "If enabled on a proxy gateway, this setting will intercept recurring service enumeration calls that the proxy gateway normally passes along. If the proxy gateway already has the service enumeration information available locally, then that information is returned directly instead of forwarding the call. Doing so can significantly cut down on the volume of recurring service enumeration calls on a large gateway network.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowJavaSerialization": { "default": false, "type": "boolean", "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "requireSSL": { "default": true, "description": "If true, only connections that use SSL to encrypt traffic will be allowed. This setting only applies to incoming connections.\n", "type": "boolean", "x-ignition-non-secret": false }, "requireTwoWayAuth": { "default": true, "description": "Enforces two-way SSL authentication. If true, you will need to install the remote machine's certificate on this machine, in addition to manual approval of this machine's certificate on the remote machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "receiveQueueMax": { "default": 100, "description": "Number of received messages that can be held until they are processed by the local system. When this capacity is exceeded, new messages are rejected and errors are reported to the remote gateway. Applies to incoming connections.\n", "type": "number", "x-ignition-non-secret": false }, "overloadWaitSecs": { "default": 60, "description": "The number of seconds that a remote machine is instructed to wait before resuming message delivery. This setting is used when an overload is detected on the local machine.\n", "type": "number", "x-ignition-non-secret": false }, "allowIncoming": { "default": true, "description": "If false, only outward connections defined on this gateway will be allowed.\n", "type": "boolean", "x-ignition-non-secret": false }, "securityPolicy": { "default": "ApprovedOnly", "description": "Dictates what connections are allowed. If set to 'Approved', incoming connections must be approved from the Incoming Connections page.\n", "type": "string", "enum": [ "Unrestricted", "ApprovedOnly", "SpecifiedList" ], "x-ignition-non-secret": false }, "whitelist": { "default": "", "description": "If connection policy is set to Specified List, this is the comma-separated list of ${GATEWAY} names which will be allowed to connect.\n", "type": "string", "x-ignition-non-secret": false }, "allowedProxyHops": { "default": 0, "description": "The maximum number of proxy hops which could be used to reach the destination Gateway. Any number less than or equal to zero is equivalent to no proxy hops allowed.\n", "type": "number", "x-ignition-non-secret": false }, "websocketSessionIdleTimeout": { "default": 30000, "description": "The maximum number of milliseconds that a websocket is allowed to remain idle before it is closed. This value should always be set higher than outgoing connection ping rates to avoid premature connection termination.\n", "type": "number", "x-ignition-non-secret": false }, "tempFilesMaxAgeHours": { "default": 24, "description": "The maximum number of hours that a gateway network temporary file will be retained. Files older than this value will be purged. Set to 0 to disable cleaning of temporary files.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingRateMillis": { "default": 5000, "description": "How often, in milliseconds, to send a ping to a remote machine. This will allow an incoming connection's health to be monitored. Set to 0 to disable pings sent from an incoming connection.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingTimeoutMillis": { "default": 300, "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingMaxMissed": { "default": 12, "description": "The amount of missed pings that will force an incoming connection to be considered faulted.\n", "type": "number", "x-ignition-non-secret": false }, "proxyInterceptServiceCalls": { "default": false, "description": "If enabled on a proxy gateway, this setting will intercept recurring service enumeration calls that the proxy gateway normally passes along. If the proxy gateway already has the service enumeration information available locally, then that information is returned directly instead of forwarding the call. Doing so can significantly cut down on the volume of recurring service enumeration calls on a large gateway network.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowJavaSerialization": { "default": false, "type": "boolean", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/general-alarm-settings": { "get": { "tags": [ "general-alarm-settings" ], "summary": "Get General Alarm Settings Config", "description": "Retrieve configuration details about the General Alarm Settings resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "startupSuppressionTime": { "description": "How long to store events for on shutdown, to prevent new events on startup. Prevents unacknowledged active events from being generated due to reboot. If set to 0, will not be used. Default 10.", "type": "number", "x-ignition-non-secret": false }, "liveEventLimit": { "description": "The number of \"live\" events (active or unacknowledged) that can exist for a single alarm at a given time. When surpassed, older events will be acknowledged automatically by the system. Default 5.", "type": "number", "x-ignition-non-secret": false }, "notifyInitialEvents": { "description": "If false, active alarms caused by the \"initial state\" (that is, the first value checked after being created, or after the enabled state changes) won't be sent to the notification system. Default false.", "type": "boolean", "x-ignition-non-secret": false } } }, "backupConfig": { "type": "object", "properties": { "startupSuppressionTime": { "description": "How long to store events for on shutdown, to prevent new events on startup. Prevents unacknowledged active events from being generated due to reboot. If set to 0, will not be used. Default 10.", "type": "number", "x-ignition-non-secret": false }, "liveEventLimit": { "description": "The number of \"live\" events (active or unacknowledged) that can exist for a single alarm at a given time. When surpassed, older events will be acknowledged automatically by the system. Default 5.", "type": "number", "x-ignition-non-secret": false }, "notifyInitialEvents": { "description": "If false, active alarms caused by the \"initial state\" (that is, the first value checked after being created, or after the enabled state changes) won't be sent to the notification system. Default false.", "type": "boolean", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/local-system-properties": { "get": { "tags": [ "config-local-system-properties" ], "summary": "Get Local System Properties Config", "description": "Retrieve configuration details about the Local System Properties resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "systemUID": { "type": "string", "x-ignition-non-secret": false }, "demoTimeRemaining": { "default": 7200, "description": " Represents the amount of demo time remaining, in seconds. Updated on shutdown, not kept up-to-date while the system is running.\n", "type": "number", "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "systemUID": { "type": "string", "x-ignition-non-secret": false }, "demoTimeRemaining": { "default": 7200, "description": " Represents the amount of demo time remaining, in seconds. Updated on shutdown, not kept up-to-date while the system is running.\n", "type": "number", "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/quickstart": { "get": { "tags": [ "quickstart" ], "summary": "Get Quick Start Configuration Config", "description": "Retrieve configuration details about the Quick Start Configuration resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "finished": { "type": "boolean", "description": "True when the Quick Start project has been completed by the user or otherwise cancelled", "examples": [ false ] }, "steps": { "type": "array", "description": "The list of steps in the Quick Start workflow", "examples": [ [ { "completed": false, "name": "INSTALL" }, { "completed": false, "name": "ENABLED" }, { "completed": false, "name": "DESIGNER" }, { "completed": false, "name": "PROJECT" }, { "completed": false, "name": "SESSION" } ] ] } }, "description": "Ignition Quick Start Project State Configuration" }, "backupConfig": { "type": "object", "properties": { "finished": { "type": "boolean", "description": "True when the Quick Start project has been completed by the user or otherwise cancelled", "examples": [ false ] }, "steps": { "type": "array", "description": "The list of steps in the Quick Start workflow", "examples": [ [ { "completed": false, "name": "INSTALL" }, { "completed": false, "name": "ENABLED" }, { "completed": false, "name": "DESIGNER" }, { "completed": false, "name": "PROJECT" }, { "completed": false, "name": "SESSION" } ] ] } }, "description": "Ignition Quick Start Project State Configuration" }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/security-levels": { "get": { "tags": [ "config-security-levels" ], "summary": "Get Security Levels Config", "description": "Retrieve configuration details about the Security Levels resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" }, "description": "A tree of security levels." } } }, "backupConfig": { "properties": { "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" }, "description": "A tree of security levels." } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/security-properties": { "get": { "tags": [ "config-security-properties" ], "summary": "Get Security Properties Config", "description": "Retrieve configuration details about the Security Properties resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "systemAuthProfile": { "description": "This user source controls access to the Gateway's web configuration interface and the Designer.\n", "type": "string", "x-ignition-non-secret": false }, "systemIdentityProvider": { "description": "The name of the identity provider to use for system-level authentication.\n", "type": "string", "x-ignition-non-secret": false }, "forceIdpAuth": { "default": true, "description": "If true, users will be forced to authenticate through the identity provider.\n", "type": "boolean", "x-ignition-non-secret": false }, "designerAuthStrategy": { "default": "CLASSIC", "type": "string", "enum": [ "CLASSIC", "IDENTITY_PROVIDER" ], "x-ignition-non-secret": false }, "designerAuthTokenInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": true }, "designerAuthTokenTimeToLive": { "default": 0, "type": "number", "x-ignition-non-secret": true }, "designerRoleName": { "default": "Administrator", "description": "Users must belong to one of these roles in order to log into the ${DESIGNER}. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "createProjectRoleName": { "description": "Users must belong to one of these roles in order to create a new ${DESIGNER} project. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "accessPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "designerPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "createProjectPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "userInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": false }, "allowUserAdmin": { "default": false, "description": "Allows the administration of the gateway's system user source from the designer and client. Unless this is enabled, the Vision module's 'User Management Component' will be prevented from altering the gateway's system user source and scripts will not be able to alter users or roles.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowDesignerSSO": { "default": false, "description": "Allows single-sign-on authentication for logging into the designer if the gateway user source supports it.\n", "type": "boolean", "x-ignition-non-secret": false }, "gatewayAuditProfile": { "description": "The name of the audit profile that gateway-scoped actions will log to.\n", "type": "string", "x-ignition-non-secret": false } }, "required": [ "systemAuthProfile", "systemIdentityProvider" ] }, "backupConfig": { "properties": { "systemAuthProfile": { "description": "This user source controls access to the Gateway's web configuration interface and the Designer.\n", "type": "string", "x-ignition-non-secret": false }, "systemIdentityProvider": { "description": "The name of the identity provider to use for system-level authentication.\n", "type": "string", "x-ignition-non-secret": false }, "forceIdpAuth": { "default": true, "description": "If true, users will be forced to authenticate through the identity provider.\n", "type": "boolean", "x-ignition-non-secret": false }, "designerAuthStrategy": { "default": "CLASSIC", "type": "string", "enum": [ "CLASSIC", "IDENTITY_PROVIDER" ], "x-ignition-non-secret": false }, "designerAuthTokenInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": true }, "designerAuthTokenTimeToLive": { "default": 0, "type": "number", "x-ignition-non-secret": true }, "designerRoleName": { "default": "Administrator", "description": "Users must belong to one of these roles in order to log into the ${DESIGNER}. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "createProjectRoleName": { "description": "Users must belong to one of these roles in order to create a new ${DESIGNER} project. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "accessPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "designerPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "createProjectPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "userInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": false }, "allowUserAdmin": { "default": false, "description": "Allows the administration of the gateway's system user source from the designer and client. Unless this is enabled, the Vision module's 'User Management Component' will be prevented from altering the gateway's system user source and scripts will not be able to alter users or roles.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowDesignerSSO": { "default": false, "description": "Allows single-sign-on authentication for logging into the designer if the gateway user source supports it.\n", "type": "boolean", "x-ignition-non-secret": false }, "gatewayAuditProfile": { "description": "The name of the audit profile that gateway-scoped actions will log to.\n", "type": "string", "x-ignition-non-secret": false } }, "required": [ "systemAuthProfile", "systemIdentityProvider" ] }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/system-properties": { "get": { "tags": [ "config-system-properties" ], "summary": "Get System Properties Config", "description": "Retrieve configuration details about the System Properties resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "properties": { "systemName": { "description": "The name of this Ignition system, used to differentiate this system from others in a larger architecture.\n", "type": "string", "x-ignition-non-secret": false }, "designerRAM": { "default": "MB1024", "description": "Specify the maximum amount of memory that the designer has access to.\n", "type": "string", "enum": [ "MB128", "MB256", "MB512", "MB768", "MB1024", "MB1536", "MB2048", "MB4096" ], "x-ignition-non-secret": false }, "disable3DPipeline": { "default": true, "description": "Disables the Direct3D rendering pipeline launched clients. Direct3D can cause performance problems with XOR painting. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "disableDirectDraw": { "default": false, "description": "Disables the DirectDraw system for launched clients. Can be useful for some video cards that don't support DirectDraw well. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "useCondensedDialogFont": { "default": false, "description": "Designers and Vision Clients will use a condensed version of the \"Dialog\" font for better compatibility with pre-8.0 Vision project design. (affects clients on Windows and Linux only)\n", "type": "boolean", "x-ignition-non-secret": false }, "homepageUrl": { "default": "/app", "description": "The URL this gateway will redirect to when http://ip:port/ is visited. Can either be a relative path (e.g., /app/welcome), or fully qualified (e.g., https://inductiveautomation.com).\n", "type": "string", "x-ignition-non-secret": false }, "homepageNotes": { "default": "Welcome to your Ignition Gateway. This customizable area is intended to capture the critical details you want to document for this Gateway. You might include information about the environment (production, testing, or development), key workflows, or maintenance schedules. It's also a great place to list instructions for your team, important reminders about system health, or details about your configuration that require regular review. Use this space to keep everyone informed and ensure smooth operations across the board.", "description": "A customizable message that is displayed on the Ignition Gateway default homepage.", "type": "string", "x-ignition-non-secret": false }, "clientFallbackEnabled": { "default": false, "description": "Enables a Vision client to fall back to a project in a local Gateway if communication is lost to the central Gateway. Note that port 6501 must be open on the local machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "secondsBeforeFailover": { "default": 60, "description": "The number of seconds to wait before switching to the local Gateway project after comm loss.\n", "type": "number", "x-ignition-non-secret": false }, "fallbackProjectName": { "description": "The local project to use during fallback.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupsEnabled": { "default": false, "description": "Enables the scheduled backup system which will automatically make backups at a scheduled time.\n", "type": "boolean", "x-ignition-non-secret": false }, "scheduledBackupPath": { "description": "A path to a folder in which to put the scheduled backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupTimes": { "default": "15 1 * * *", "description": "A UNIX crontab style scheduling string representing when to make the backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupRetentionCount": { "default": 5, "description": "The number of backups to keep in the backup folder.\n", "type": "number", "x-ignition-non-secret": false }, "scheduledBackupFilename": { "default": "${gatewayName}_Ignition-backup-${edition}${timestamp}.gwbk", "description": "The filename pattern used for creating scheduled and manually downloaded gateway backups.\n", "type": "string", "x-ignition-non-secret": false }, "automaticThreadDumpsEnabled": { "default": false, "description": "Enables automated thread dump generation when CPU utilization exceeds the CPU threshold.\n", "type": "boolean", "x-ignition-non-secret": false }, "automaticThreadDumpsIntervalSeconds": { "default": 60, "description": "Number of seconds between thread dumps when utilization threshold+duration is met.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThreshold": { "default": 70, "description": "CPU Usage Threshold (%) that when exceeded for a given duration (below) will trigger a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThresholdExceededDuration": { "default": 10, "description": "Duration (seconds) during CPU Usage Threshold exceedance to delay a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsRetentionCount": { "default": 50, "description": "The number of thread dumps to keep in the logs folder.\n", "type": "number", "x-ignition-non-secret": false }, "errorReportSMTPServer": { "description": "When not blank, user-reported errors will be emailed using this SMTP server.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportToEmail": { "description": "The email address that the error notification is from.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportFromEmail": { "description": "The email address(es) that will receive the error notification. Separate multiple email addresses with a semicolon (;).\n", "type": "string", "x-ignition-non-secret": false }, "errorReportUsername": { "description": "A username for the SMTP server, if required.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "A password for the SMTP server, if required.\n" }, "multicastEnabled": { "default": true, "description": "Allows this Gateway to be discoverable on your local network.\n", "type": "boolean", "x-ignition-non-secret": false }, "multicastIPAddr": { "default": "231.1.1.1", "description": "Gateway messages will be broadcast on this address.\n", "type": "string", "x-ignition-non-secret": false }, "multicastSendPort": { "default": "4445", "description": "This port must be open on this machine to send multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastReceivePort": { "default": "4446", "description": "This port must be open on any machine that will receive multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastIntervalMillis": { "default": "5000", "description": "The interval in milliseconds at which multicast messages will be sent.\n", "type": "string", "x-ignition-non-secret": false }, "gatewayScriptingProject": { "description": "The name of the Project that gateway-scoped scripts with no project affiliation can access user script libraries in.\n", "type": "string", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "default": true, "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer for 3rd party modules.\n", "type": "boolean", "x-ignition-non-secret": false }, "scriptMessageEncoding": { "default": "Protobuf", "description": "Sets the message encoding format used for script messages (system.util.sendMessage, sendRequest) between\nclient/designer and gateway.\n", "type": "string", "enum": [ "JavaSerialization", "Protobuf" ], "x-ignition-non-secret": false } } }, "backupConfig": { "properties": { "systemName": { "description": "The name of this Ignition system, used to differentiate this system from others in a larger architecture.\n", "type": "string", "x-ignition-non-secret": false }, "designerRAM": { "default": "MB1024", "description": "Specify the maximum amount of memory that the designer has access to.\n", "type": "string", "enum": [ "MB128", "MB256", "MB512", "MB768", "MB1024", "MB1536", "MB2048", "MB4096" ], "x-ignition-non-secret": false }, "disable3DPipeline": { "default": true, "description": "Disables the Direct3D rendering pipeline launched clients. Direct3D can cause performance problems with XOR painting. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "disableDirectDraw": { "default": false, "description": "Disables the DirectDraw system for launched clients. Can be useful for some video cards that don't support DirectDraw well. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "useCondensedDialogFont": { "default": false, "description": "Designers and Vision Clients will use a condensed version of the \"Dialog\" font for better compatibility with pre-8.0 Vision project design. (affects clients on Windows and Linux only)\n", "type": "boolean", "x-ignition-non-secret": false }, "homepageUrl": { "default": "/app", "description": "The URL this gateway will redirect to when http://ip:port/ is visited. Can either be a relative path (e.g., /app/welcome), or fully qualified (e.g., https://inductiveautomation.com).\n", "type": "string", "x-ignition-non-secret": false }, "homepageNotes": { "default": "Welcome to your Ignition Gateway. This customizable area is intended to capture the critical details you want to document for this Gateway. You might include information about the environment (production, testing, or development), key workflows, or maintenance schedules. It's also a great place to list instructions for your team, important reminders about system health, or details about your configuration that require regular review. Use this space to keep everyone informed and ensure smooth operations across the board.", "description": "A customizable message that is displayed on the Ignition Gateway default homepage.", "type": "string", "x-ignition-non-secret": false }, "clientFallbackEnabled": { "default": false, "description": "Enables a Vision client to fall back to a project in a local Gateway if communication is lost to the central Gateway. Note that port 6501 must be open on the local machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "secondsBeforeFailover": { "default": 60, "description": "The number of seconds to wait before switching to the local Gateway project after comm loss.\n", "type": "number", "x-ignition-non-secret": false }, "fallbackProjectName": { "description": "The local project to use during fallback.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupsEnabled": { "default": false, "description": "Enables the scheduled backup system which will automatically make backups at a scheduled time.\n", "type": "boolean", "x-ignition-non-secret": false }, "scheduledBackupPath": { "description": "A path to a folder in which to put the scheduled backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupTimes": { "default": "15 1 * * *", "description": "A UNIX crontab style scheduling string representing when to make the backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupRetentionCount": { "default": 5, "description": "The number of backups to keep in the backup folder.\n", "type": "number", "x-ignition-non-secret": false }, "scheduledBackupFilename": { "default": "${gatewayName}_Ignition-backup-${edition}${timestamp}.gwbk", "description": "The filename pattern used for creating scheduled and manually downloaded gateway backups.\n", "type": "string", "x-ignition-non-secret": false }, "automaticThreadDumpsEnabled": { "default": false, "description": "Enables automated thread dump generation when CPU utilization exceeds the CPU threshold.\n", "type": "boolean", "x-ignition-non-secret": false }, "automaticThreadDumpsIntervalSeconds": { "default": 60, "description": "Number of seconds between thread dumps when utilization threshold+duration is met.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThreshold": { "default": 70, "description": "CPU Usage Threshold (%) that when exceeded for a given duration (below) will trigger a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThresholdExceededDuration": { "default": 10, "description": "Duration (seconds) during CPU Usage Threshold exceedance to delay a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsRetentionCount": { "default": 50, "description": "The number of thread dumps to keep in the logs folder.\n", "type": "number", "x-ignition-non-secret": false }, "errorReportSMTPServer": { "description": "When not blank, user-reported errors will be emailed using this SMTP server.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportToEmail": { "description": "The email address that the error notification is from.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportFromEmail": { "description": "The email address(es) that will receive the error notification. Separate multiple email addresses with a semicolon (;).\n", "type": "string", "x-ignition-non-secret": false }, "errorReportUsername": { "description": "A username for the SMTP server, if required.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "A password for the SMTP server, if required.\n" }, "multicastEnabled": { "default": true, "description": "Allows this Gateway to be discoverable on your local network.\n", "type": "boolean", "x-ignition-non-secret": false }, "multicastIPAddr": { "default": "231.1.1.1", "description": "Gateway messages will be broadcast on this address.\n", "type": "string", "x-ignition-non-secret": false }, "multicastSendPort": { "default": "4445", "description": "This port must be open on this machine to send multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastReceivePort": { "default": "4446", "description": "This port must be open on any machine that will receive multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastIntervalMillis": { "default": "5000", "description": "The interval in milliseconds at which multicast messages will be sent.\n", "type": "string", "x-ignition-non-secret": false }, "gatewayScriptingProject": { "description": "The name of the Project that gateway-scoped scripts with no project affiliation can access user script libraries in.\n", "type": "string", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "default": true, "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer for 3rd party modules.\n", "type": "boolean", "x-ignition-non-secret": false }, "scriptMessageEncoding": { "default": "Protobuf", "description": "Sets the message encoding format used for script messages (system.util.sendMessage, sendRequest) between\nclient/designer and gateway.\n", "type": "string", "enum": [ "JavaSerialization", "Protobuf" ], "x-ignition-non-secret": false } } }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/singleton/ignition/translations": { "get": { "tags": [ "config-translations" ], "summary": "Get Translations Config", "description": "Retrieve configuration details about the Translations resource", "parameters": [ { "name": "defaultIfUndefined", "in": "query", "description": "If true, return the default configuration if the resource is not defined. Otherwise, return 404. Default is false.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": false } }, { "name": "collection", "in": "query", "description": "The configuration collection to read the resource from", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "core" } } ], "responses": { "404": { "description": "Resource definition not found" }, "200": { "description": "Success, resource found", "content": { "application/json": { "schema": { "properties": { "type": { "type": "string", "description": "The resource's type identifier" }, "name": { "type": "string", "description": "The name of the resource" }, "description": { "type": "string", "description": "The description of the resource" }, "enabled": { "type": "boolean", "description": "Whether the resource is enabled" }, "version": { "type": "integer", "description": "The version of the resource" }, "collection": { "type": "string", "description": "The configuration collection the resource was loaded from." }, "collections": { "type": "array", "items": { "type": "string" }, "description": "The configuration collections the resource is defined in." }, "signature": { "type": "string", "description": "The signature of the resource" }, "config": { "type": "object", "properties": { "caseInsensitive": { "description": "Whether to ignore case differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreWhitespace": { "description": "Whether to ignore whitespace differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignorePunctuation": { "description": "Whether to ignore punctuation differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreTags": { "description": "Whether to ignore HTML tags in terms", "type": "boolean", "x-ignition-non-secret": false }, "terms": { "type": "object", "description": "A map of locales to term translations", "examples": [ { "en-US": { "hello": "hello", "world": "world" }, "es-MX": { "hello": "hola", "world": "mundo" } } ], "additionalProperties": { "type": "object", "description": "A map of terms to translations", "additionalProperties": { "type": "string", "description": "The translation for the term", "examples": [ "Hello" ] } } } }, "required": [ "caseInsensitive", "ignoreWhitespace", "ignorePunctuation", "ignoreTags" ], "description": "The Gateway's defined translation terms and settings" }, "backupConfig": { "type": "object", "properties": { "caseInsensitive": { "description": "Whether to ignore case differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreWhitespace": { "description": "Whether to ignore whitespace differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignorePunctuation": { "description": "Whether to ignore punctuation differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreTags": { "description": "Whether to ignore HTML tags in terms", "type": "boolean", "x-ignition-non-secret": false }, "terms": { "type": "object", "description": "A map of locales to term translations", "examples": [ { "en-US": { "hello": "hello", "world": "world" }, "es-MX": { "hello": "hola", "world": "mundo" } } ], "additionalProperties": { "type": "object", "description": "A map of terms to translations", "additionalProperties": { "type": "string", "description": "The translation for the term", "examples": [ "Hello" ] } } } }, "required": [ "caseInsensitive", "ignoreWhitespace", "ignorePunctuation", "ignoreTags" ], "description": "The Gateway's defined translation terms and settings" }, "data": { "type": "array", "items": { "type": "string" }, "description": "The data files available for this resource" }, "attributes": { "type": "object", "description": "The attributes of the resource" } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.alarm-notification/alarm-notification-profile": { "get": { "tags": [ "alarm-notification-profile" ], "summary": "Describe Alarm Notification Profiles Resource Type", "description": "Provide information about the Alarm Notification Profiles resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.eam/agent-group": { "get": { "tags": [ "agent-group" ], "summary": "Describe Agent Groups Resource Type", "description": "Provide information about the Agent Groups resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.eam/agent-management": { "get": { "tags": [ "agent-management" ], "summary": "Describe Agent Management Resource Type", "description": "Provide information about the Agent Management resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.eam/eam-tasks": { "get": { "tags": [ "eam-tasks" ], "summary": "Describe EAM Agent Task Resource Type", "description": "Provide information about the EAM Agent Task resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.eam/event-thresholds": { "get": { "tags": [ "event-thresholds" ], "summary": "Describe Event Thresholds Resource Type", "description": "Provide information about the Event Thresholds resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "type": "object", "properties": { "alarmOnActivity": { "description": "If true, alarms will be generated for agent events such as disconnection.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnMetrics": { "description": "If true, alarms will be generated for out-of-range metrics.", "type": "boolean", "x-ignition-non-secret": false }, "alarmOnTasks": { "description": "If true, alarms will be generated when an EAM scheduled task fails.", "type": "boolean", "x-ignition-non-secret": false }, "warningPriority": { "description": "The priority to set on alarms when a warning condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "errorPriority": { "description": "The priority to set on alarms when an error condition is encountered.", "type": "string", "enum": [ "Diagnostic", "Low", "Medium", "High", "Critical" ], "x-ignition-non-secret": false }, "activePipeline": { "description": "The alarm notification pipeline to use when reporting EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "ackPipeline": { "description": "The alarm notification pipeline to use when acknowledging EAM alarm events.", "type": "string", "x-ignition-non-secret": false }, "connectionWarning": { "description": "Creates a warning event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "connectionError": { "description": "Creates an error event after contact is lost with an agent. Value is in minutes.", "type": "number", "x-ignition-non-secret": false }, "cpuWarning": { "description": "Creates a warning event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "cpuError": { "description": "Creates an error event if an agent's CPU usage exceeds this threshold. Value is in percent.", "type": "number", "x-ignition-non-secret": false }, "memWarning": { "description": "Creates a warning event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "memError": { "description": "Creates an error event if an agent's memory usage exceeds this threshold. The threshold is calculated as a percentage of the total memory allocation to the Gateway.", "type": "number", "x-ignition-non-secret": false }, "errPerMinWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerMinError": { "description": "Creates an error event if an agent has been throwing errors within the last minute, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourWarning": { "description": "Creates a warning event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "errPerHourError": { "description": "Creates an error event if an agent has been throwing errors within the last hour, and the number of thrown errors has exceeded this threshold.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsWarning": { "description": "Creates a warning event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "connectedClientsError": { "description": "Creates an error event if the number of Vision clients connected to the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsWarning": { "description": "Creates a warning event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "perspectiveSessionsError": { "description": "Creates an error event if the number of Perspective sessions on the agent exceeds this value.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilWarning": { "description": "Creates a warning event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false }, "dbConnUtilError": { "description": "Creates an error event when the utilization of the agent's database connection pool exceeds the specified percentage.", "type": "number", "x-ignition-non-secret": false } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.eam/hw-license-management": { "get": { "tags": [ "license-management" ], "summary": "Describe Hardware License Resource Type", "description": "Provide information about the Hardware License resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.eam/leased-license-management": { "get": { "tags": [ "license-management" ], "summary": "Describe Leased License Resource Type", "description": "Provide information about the Leased License resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.eam/module-certificates": { "get": { "tags": [ "module-certificate" ], "summary": "Describe Module Certificate Resource Type", "description": "Provide information about the Module Certificate resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.eam/module-eulas": { "get": { "tags": [ "module-eula" ], "summary": "Describe Module EULA Resource Type", "description": "Provide information about the Module EULA resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.eam/module-settings": { "get": { "tags": [ "module-settings" ], "summary": "Describe Module Settings Resource Type", "description": "Provide information about the Module Settings resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "type": "object", "properties": { "installMode": { "description": "Set installMode to configure EAM as a controller or an agent", "type": "string", "enum": [ "Controller", "Agent", "NotInstalled" ], "x-ignition-non-secret": false }, "controllerSettings": { "type": "object", "properties": { "eventTableName": { "description": "The database table name that will be used to store EAM events", "type": "string", "x-ignition-non-secret": false }, "archiveLocationMode": { "description": "If 'Automatic', the system will manage the location of the Agent archive. If 'Manual', the archivePath value will be used.", "type": "string", "enum": [ "Automatic", "Manual" ], "x-ignition-non-secret": false }, "archivePath": { "description": "The file path to save Gateway backups, archived modules, and other files.", "type": "string", "x-ignition-non-secret": false }, "lowDiskThresholdMB": { "description": "Value is in megabytes. Errors will be reported in this Gateway when the disk used for archiving drops below this value.", "type": "number", "x-ignition-non-secret": false }, "datasource": { "description": "The database connection to use for recording agent history.", "type": "string", "x-ignition-non-secret": false }, "maxRetainedBackupCount": { "description": "Maximum number of backups that will be retained for each agent.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionAge": { "description": "Maximum age of backups that will be retained for each agent. Age time unit is determined by the backupRetentionTimeUnit setting.", "type": "number", "x-ignition-non-secret": false }, "backupRetentionTimeUnit": { "type": "string", "enum": [ "Days", "Weeks", "Months", "Years" ], "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "agentSettings": { "type": "object", "properties": { "controllerServerId": { "description": "Server name of the EAM controller gateway", "type": "string", "x-ignition-non-secret": false }, "sendStatsInterval": { "description": "The interval in seconds that the agent will send its statistics to the controller Gateway.", "type": "number", "x-ignition-non-secret": false }, "httpConnectTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http connect timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "httpReadTimeout": { "description": "Used when the remote upgrade task is configured to download an upgrade zip from an alternate URL. Sets the http read timeout when running the download. Value is in seconds.", "type": "number", "x-ignition-non-secret": false }, "forwardLeasedLicense": { "description": "If true, this setting will forward leased license activation and renewal requests to the controller. The controller will execute the leased requests on behalf of the agent.", "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.eam/remote-upgrade": { "get": { "tags": [ "remote-upgrade" ], "summary": "Describe Remote Upgrade Resource Type", "description": "Provide information about the Remote Upgrade resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.historian/historian-provider": { "get": { "tags": [ "historian-config" ], "summary": "Describe Historian Resource Type", "description": "Provide information about the Historian resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.opcua.drivers.bacnet/BacnetIpLocalDeviceConfig": { "get": { "tags": [ "local-devices" ], "summary": "Describe Local Devices Resource Type", "description": "Provide information about the Local Devices resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "type": "object", "properties": { "ipConnectivity": { "type": "object", "properties": { "bindAddress": { "type": "string", "x-ignition-non-secret": false }, "bindPort": { "type": "number", "x-ignition-non-secret": false }, "broadcastAddress": { "type": "string", "x-ignition-non-secret": false }, "networkPrefixLength": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "bacnetConnectivity": { "type": "object", "properties": { "deviceNumber": { "type": "number", "x-ignition-non-secret": false }, "networkNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "broadcastManagement": { "type": "object", "properties": { "foreignDeviceRegistrationEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "port": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "backupDeviceNumber": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.opcua/access-control": { "get": { "tags": [ "access-control" ], "summary": "Describe OPC UA Access Control Config Resource Type", "description": "Provide information about the OPC UA Access Control Config resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "properties": { "defaultDeviceRolePermissionMappings": { "description": "Default role permission mappings for devices.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "defaultTagProviderRolePermissionMappings": { "description": "Default role permission mappings for tags.", "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } }, "tagProviderRolePermissionMappings": { "description": "Role permission mappings for specific tag providers.", "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "role": { "type": "string", "x-ignition-non-secret": false }, "permissions": { "type": "array", "items": { "type": "string", "permissions": "string" }, "x-ignition-non-secret": false } } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.opcua/device": { "get": { "tags": [ "device" ], "summary": "Describe Devices Resource Type", "description": "Provide information about the Devices resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.opcua/server-config": { "get": { "tags": [ "server" ], "summary": "Describe OPC UA Server Config Resource Type", "description": "Provide information about the OPC UA Server Config resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "type": "object", "properties": { "endpoint": { "type": "object", "properties": { "bindPort": { "type": "number", "x-ignition-non-secret": false }, "bindAddresses": { "type": "array", "items": { "type": "string", "bindAddresses": "string" }, "x-ignition-non-secret": false }, "endpointAddresses": { "type": "array", "items": { "type": "string", "endpointAddresses": "string" }, "x-ignition-non-secret": false }, "securityPolicies": { "type": "array", "items": { "type": "string", "securityPolicies": "string" }, "x-ignition-non-secret": false }, "messageSecurityModes": { "type": "array", "items": { "type": "string", "messageSecurityModes": "string" }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "authentication": { "type": "object", "properties": { "anonymousAccessAllowed": { "type": "boolean", "x-ignition-non-secret": false }, "authenticationProfile": { "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "redundancy": { "type": "object", "properties": { "readOnlyWhenInactive": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "advanced": { "type": "object", "properties": { "exposedTagsEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "maxSessionCount": { "type": "number", "x-ignition-non-secret": false }, "gdsPushEnabled": { "type": "boolean", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.perspective/fonts": { "get": { "tags": [ "config-perspective-fonts" ], "summary": "Describe Fonts Resource Type", "description": "Provide information about the Fonts resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.perspective/icons": { "get": { "tags": [ "config-perspective-icons" ], "summary": "Describe Icons Resource Type", "description": "Provide information about the Icons resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.perspective/themes": { "get": { "tags": [ "config-perspective-themes" ], "summary": "Describe Themes Resource Type", "description": "Provide information about the Themes resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/com.inductiveautomation.sfc/chart-settings": { "get": { "tags": [ "sfc-config" ], "summary": "Describe SFC Settings Resource Type", "description": "Provide information about the SFC Settings resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "type": "object", "properties": { "chartRecordingEnabled": { "type": "boolean", "x-ignition-non-secret": false }, "recordingsPerChart": { "type": "number", "x-ignition-non-secret": false }, "pruneAge": { "type": "number", "x-ignition-non-secret": false }, "pruneAgeUnits": { "type": "string", "enum": [ "MS", "SEC", "MIN", "HOUR", "DAY", "WEEK", "MONTH", "YEAR" ], "x-ignition-non-secret": false } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/alarm-journal": { "get": { "tags": [ "alarm-journal-resources" ], "summary": "Describe Alarm Journal Settings Resource Type", "description": "Provide information about the Alarm Journal Settings resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/api-token": { "get": { "tags": [ "config-api-token" ], "summary": "Describe API Token Resource Type", "description": "Provide information about the API Token resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "properties": { "profile": { "type": "object", "properties": { "type": { "type": "string", "description": "Type code of the extension point.", "enum": [ "basic-token" ] }, "secureChannelRequired": { "type": "boolean", "title": "Secure Channel Required", "description": "Boolean indicating whether this token may only be used in secure HTTPS requests (true) or if it can be used in insecure HTTP requests (false)." }, "securityLevels": { "type": "array", "title": "Security Levels", "description": "Security levels granted to the API Token.", "items": { "$ref": "#/components/schemas/SecurityLevel" } }, "timestamp": { "type": "number", "title": "Timestamp", "description": "Number of milliseconds from 1970-01-01T00:00:00.000Z as measured in UTC until the date/time when the API token was created." } }, "required": [ "type", "secureChannelRequired", "securityLevels", "timestamp" ] }, "settings": { "type": "object", "description": "Type-specific settings, if applicable. Object schema will change based upon extension point type.", "oneOf": [ { "$id": "ignition/api-token/basic-token", "title": "basic-token", "type": "object", "properties": { "tokenHash": { "description": "Secure digest of the API token value", "type": "string", "x-ignition-non-secret": true } }, "required": [ "tokenHash" ] } ] } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/audit-profile": { "get": { "tags": [ "config-audit-profiles" ], "summary": "Describe Audit Profiles Resource Type", "description": "Provide information about the Audit Profiles resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/cobranding": { "get": { "tags": [ "config-perspective-branding" ], "summary": "Describe Brand Customization Resource Type", "description": "Provide information about the Brand Customization resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "type": "object", "properties": { "enabled": { "type": "boolean", "x-ignition-non-secret": false }, "backgroundColor": { "type": "string", "x-ignition-non-secret": false }, "textColor": { "type": "string", "x-ignition-non-secret": false }, "buttonColor": { "type": "string", "x-ignition-non-secret": false }, "buttonTextColor": { "type": "string", "x-ignition-non-secret": false }, "logo": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "favicon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "appIcon": { "type": "string", "contentEncoding": "base64", "x-ignition-non-secret": false }, "logoType": { "type": "string", "x-ignition-non-secret": false }, "logoName": { "type": "string", "x-ignition-non-secret": false }, "faviconName": { "type": "string", "x-ignition-non-secret": false }, "appIconName": { "type": "string", "x-ignition-non-secret": false }, "faviconSize": { "type": "string", "x-ignition-non-secret": false }, "appIconSize": { "type": "string", "x-ignition-non-secret": false } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/database-connection": { "get": { "tags": [ "config-databases" ], "summary": "Describe Database Connection Resource Type", "description": "Provide information about the Database Connection resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "metrics": { "type": "object", "description": "The metrics of the resource type.", "properties": { "active-connections": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } }, "queries": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/database-driver": { "get": { "tags": [ "config-databases" ], "summary": "Describe JDBC Driver Resource Type", "description": "Provide information about the JDBC Driver resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/database-translator": { "get": { "tags": [ "config-databases" ], "summary": "Describe Database Translator Resource Type", "description": "Provide information about the Database Translator resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/edge-system-properties": { "get": { "tags": [ "config-edge-system-properties" ], "summary": "Describe Edge System Properties Resource Type", "description": "Provide information about the Edge System Properties resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "properties": { "projectName": { "default": "Edge", "description": "The name of the default Edge project. Only one project can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "tagProvider": { "description": "The tag provider to be used for Edge. Only one realtime tag provider can exist in an Edge gateway.\n", "default": "edge", "type": "string", "x-ignition-non-secret": false }, "historianName": { "default": "Edge Historian", "description": "The name of the default Edge historian. Only one historian can exist in an Edge gateway.\n", "type": "string", "x-ignition-non-secret": false }, "visualizationName": { "default": "VISION", "type": "string", "enum": [ "VISION", "PERSPECTIVE" ], "x-ignition-non-secret": false } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/email-profile": { "get": { "tags": [ "config-email-profile" ], "summary": "Describe Email Profile Settings Resource Type", "description": "Provide information about the Email Profile Settings resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/gateway-network-incoming": { "get": { "tags": [ "config-gateway-network" ], "summary": "Describe Incoming Connection Settings Resource Type", "description": "Provide information about the Incoming Connection Settings resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/gateway-network-outgoing": { "get": { "tags": [ "config-gateway-network" ], "summary": "Describe Outgoing Connection Settings Resource Type", "description": "Provide information about the Outgoing Connection Settings resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/gateway-network-proxy-rules": { "get": { "tags": [ "config-gateway-network" ], "summary": "Describe Proxy Rules Resource Type", "description": "Provide information about the Proxy Rules resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "properties": { "proxyRules": { "type": "array", "items": { "properties": { "sourceGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "destinationGateways": { "type": "string", "description": "A comma separated list of gateway names. May use the wildcard '\\*', such as 'Manufacturing_\\*'." }, "action": { "type": "string", "description": "The action to take when a proxy route between a source gateway and a destination gateway matches this rule. If set to Deny, the proxy route will not be reported to remote gateways. Valid values are 'Allow' and 'Deny'." }, "description": { "type": "string", "description": "A description of the proxy rule." } }, "required": [ "sourceGateways", "destinationGateways" ] }, "description": "A list of proxy rules. Rule rank is determined by the list order, with rules at the beginning of the list taking precedence over later ones." } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/gateway-network-queue-settings": { "get": { "tags": [ "config-gateway-network" ], "summary": "Describe Queue Settings Resource Type", "description": "Provide information about the Queue Settings resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "properties": { "queueSettings": { "type": "array", "items": { "properties": { "queueId": { "type": "string", "description": "The queue ID" }, "maxActive": { "type": "integer", "description": "The maximum number of active messages allowed in the queue" }, "timeoutMillis": { "type": "number", "description": "The timeout in milliseconds for messages in the queue" } } }, "description": "A list of queue settings." } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/gateway-network-settings": { "get": { "tags": [ "config-gateway-network" ], "summary": "Describe General Gateway Network Settings Resource Type", "description": "Provide information about the General Gateway Network Settings resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "properties": { "requireSSL": { "default": true, "description": "If true, only connections that use SSL to encrypt traffic will be allowed. This setting only applies to incoming connections.\n", "type": "boolean", "x-ignition-non-secret": false }, "requireTwoWayAuth": { "default": true, "description": "Enforces two-way SSL authentication. If true, you will need to install the remote machine's certificate on this machine, in addition to manual approval of this machine's certificate on the remote machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "receiveQueueMax": { "default": 100, "description": "Number of received messages that can be held until they are processed by the local system. When this capacity is exceeded, new messages are rejected and errors are reported to the remote gateway. Applies to incoming connections.\n", "type": "number", "x-ignition-non-secret": false }, "overloadWaitSecs": { "default": 60, "description": "The number of seconds that a remote machine is instructed to wait before resuming message delivery. This setting is used when an overload is detected on the local machine.\n", "type": "number", "x-ignition-non-secret": false }, "allowIncoming": { "default": true, "description": "If false, only outward connections defined on this gateway will be allowed.\n", "type": "boolean", "x-ignition-non-secret": false }, "securityPolicy": { "default": "ApprovedOnly", "description": "Dictates what connections are allowed. If set to 'Approved', incoming connections must be approved from the Incoming Connections page.\n", "type": "string", "enum": [ "Unrestricted", "ApprovedOnly", "SpecifiedList" ], "x-ignition-non-secret": false }, "whitelist": { "default": "", "description": "If connection policy is set to Specified List, this is the comma-separated list of ${GATEWAY} names which will be allowed to connect.\n", "type": "string", "x-ignition-non-secret": false }, "allowedProxyHops": { "default": 0, "description": "The maximum number of proxy hops which could be used to reach the destination Gateway. Any number less than or equal to zero is equivalent to no proxy hops allowed.\n", "type": "number", "x-ignition-non-secret": false }, "websocketSessionIdleTimeout": { "default": 30000, "description": "The maximum number of milliseconds that a websocket is allowed to remain idle before it is closed. This value should always be set higher than outgoing connection ping rates to avoid premature connection termination.\n", "type": "number", "x-ignition-non-secret": false }, "tempFilesMaxAgeHours": { "default": 24, "description": "The maximum number of hours that a gateway network temporary file will be retained. Files older than this value will be purged. Set to 0 to disable cleaning of temporary files.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingRateMillis": { "default": 5000, "description": "How often, in milliseconds, to send a ping to a remote machine. This will allow an incoming connection's health to be monitored. Set to 0 to disable pings sent from an incoming connection.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingTimeoutMillis": { "default": 300, "description": "The maximum time, in milliseconds, allowed for a ping response. Pings that time out are counted as missed pings.\n", "type": "number", "x-ignition-non-secret": false }, "incomingPingMaxMissed": { "default": 12, "description": "The amount of missed pings that will force an incoming connection to be considered faulted.\n", "type": "number", "x-ignition-non-secret": false }, "proxyInterceptServiceCalls": { "default": false, "description": "If enabled on a proxy gateway, this setting will intercept recurring service enumeration calls that the proxy gateway normally passes along. If the proxy gateway already has the service enumeration information available locally, then that information is returned directly instead of forwarding the call. Doing so can significantly cut down on the volume of recurring service enumeration calls on a large gateway network.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowJavaSerialization": { "default": false, "type": "boolean", "x-ignition-non-secret": false } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/general-alarm-settings": { "get": { "tags": [ "general-alarm-settings" ], "summary": "Describe General Alarm Settings Resource Type", "description": "Provide information about the General Alarm Settings resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "type": "object", "properties": { "startupSuppressionTime": { "description": "How long to store events for on shutdown, to prevent new events on startup. Prevents unacknowledged active events from being generated due to reboot. If set to 0, will not be used. Default 10.", "type": "number", "x-ignition-non-secret": false }, "liveEventLimit": { "description": "The number of \"live\" events (active or unacknowledged) that can exist for a single alarm at a given time. When surpassed, older events will be acknowledged automatically by the system. Default 5.", "type": "number", "x-ignition-non-secret": false }, "notifyInitialEvents": { "description": "If false, active alarms caused by the \"initial state\" (that is, the first value checked after being created, or after the enabled state changes) won't be sent to the notification system. Default false.", "type": "boolean", "x-ignition-non-secret": false } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/holiday": { "get": { "tags": [ "config-alarm" ], "summary": "Describe Holiday Resource Type", "description": "Provide information about the Holiday resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/identity-provider": { "get": { "tags": [ "config-identity-provider" ], "summary": "Describe Identity Provider Resource Type", "description": "Provide information about the Identity Provider resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/keyboard_layout": { "get": { "tags": [ "config-keyboard-layouts" ], "summary": "Describe Keyboard Layouts Resource Type", "description": "Provide information about the Keyboard Layouts resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/local-system-properties": { "get": { "tags": [ "config-local-system-properties" ], "summary": "Describe Local System Properties Resource Type", "description": "Provide information about the Local System Properties resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "properties": { "systemUID": { "type": "string", "x-ignition-non-secret": false }, "demoTimeRemaining": { "default": 7200, "description": " Represents the amount of demo time remaining, in seconds. Updated on shutdown, not kept up-to-date while the system is running.\n", "type": "number", "x-ignition-non-secret": false } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/metrics-dashboard": { "get": { "tags": [ "config-metrics-dashboard" ], "summary": "Describe Metrics Dashboard Resource Type", "description": "Provide information about the Metrics Dashboard resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/oauth2-client": { "get": { "tags": [ "config-oauth2-client" ], "summary": "Describe OAuth2 Client Resource Type", "description": "Provide information about the OAuth2 Client resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/opc-connection": { "get": { "tags": [ "opc-connection" ], "summary": "Describe OPC Connections Resource Type", "description": "Provide information about the OPC Connections resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/quickstart": { "get": { "tags": [ "quickstart" ], "summary": "Describe Quick Start Configuration Resource Type", "description": "Provide information about the Quick Start Configuration resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "Ignition Quick Start Project State Configuration", "type": "object", "properties": { "finished": { "type": "boolean", "description": "True when the Quick Start project has been completed by the user or otherwise cancelled", "examples": [ false ] }, "steps": { "type": "array", "description": "The list of steps in the Quick Start workflow", "examples": [ [ { "completed": false, "name": "INSTALL" }, { "completed": false, "name": "ENABLED" }, { "completed": false, "name": "DESIGNER" }, { "completed": false, "name": "PROJECT" }, { "completed": false, "name": "SESSION" } ] ] } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/roster-config": { "get": { "tags": [ "roster-config" ], "summary": "Describe Rosters Resource Type", "description": "Provide information about the Rosters resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "type": "object", "properties": { "users": { "description": "The list of users assigned to this On-Call Roster", "type": "array", "items": { "type": "object", "properties": { "userId": { "description": "The ID of the User.", "type": "string", "x-ignition-non-secret": false }, "profile": { "description": "Name of the User's Source Profile", "type": "string", "x-ignition-non-secret": false } }, "required": [ "userId", "profile" ] }, "x-ignition-non-secret": false } }, "required": [ "users" ] } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/schedule": { "get": { "tags": [ "config-alarm" ], "summary": "Describe Schedule Resource Type", "description": "Provide information about the Schedule resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/secret-provider": { "get": { "tags": [ "config-secret-provider" ], "summary": "Describe Secret Provider Resource Type", "description": "Provide information about the Secret Provider resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/security-levels": { "get": { "tags": [ "config-security-levels" ], "summary": "Describe Security Levels Resource Type", "description": "Provide information about the Security Levels resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "properties": { "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" }, "description": "A tree of security levels." } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/security-properties": { "get": { "tags": [ "config-security-properties" ], "summary": "Describe Security Properties Resource Type", "description": "Provide information about the Security Properties resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "properties": { "systemAuthProfile": { "description": "This user source controls access to the Gateway's web configuration interface and the Designer.\n", "type": "string", "x-ignition-non-secret": false }, "systemIdentityProvider": { "description": "The name of the identity provider to use for system-level authentication.\n", "type": "string", "x-ignition-non-secret": false }, "forceIdpAuth": { "default": true, "description": "If true, users will be forced to authenticate through the identity provider.\n", "type": "boolean", "x-ignition-non-secret": false }, "designerAuthStrategy": { "default": "CLASSIC", "type": "string", "enum": [ "CLASSIC", "IDENTITY_PROVIDER" ], "x-ignition-non-secret": false }, "designerAuthTokenInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": true }, "designerAuthTokenTimeToLive": { "default": 0, "type": "number", "x-ignition-non-secret": true }, "designerRoleName": { "default": "Administrator", "description": "Users must belong to one of these roles in order to log into the ${DESIGNER}. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "createProjectRoleName": { "description": "Users must belong to one of these roles in order to create a new ${DESIGNER} project. Multiple roles can be specified by separating them with commas.\n", "type": "string", "x-ignition-non-secret": false }, "accessPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "readPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "writePermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "designerPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AnyOf", "securityLevels": [ { "name": "Authenticated", "children": [ { "name": "Roles", "children": [ { "name": "Administrator", "children": [] } ] } ] } ] } }, "createProjectPermissions": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "AnyOf", "AllOf" ] }, "securityLevels": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" } } }, "default": { "type": "AllOf", "securityLevels": [] } }, "userInactivityTimeout": { "default": 10, "type": "number", "x-ignition-non-secret": false }, "allowUserAdmin": { "default": false, "description": "Allows the administration of the gateway's system user source from the designer and client. Unless this is enabled, the Vision module's 'User Management Component' will be prevented from altering the gateway's system user source and scripts will not be able to alter users or roles.\n", "type": "boolean", "x-ignition-non-secret": false }, "allowDesignerSSO": { "default": false, "description": "Allows single-sign-on authentication for logging into the designer if the gateway user source supports it.\n", "type": "boolean", "x-ignition-non-secret": false }, "gatewayAuditProfile": { "description": "The name of the audit profile that gateway-scoped actions will log to.\n", "type": "string", "x-ignition-non-secret": false } }, "required": [ "systemAuthProfile", "systemIdentityProvider" ] } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/security-zone": { "get": { "tags": [ "config-security-zone" ], "summary": "Describe Security Zones Resource Type", "description": "Provide information about the Security Zones resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/service-connector": { "get": { "tags": [ "service-connectors" ], "summary": "Describe Service Connectors Resource Type", "description": "Provide information about the Service Connectors resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/store-and-forward-engine": { "get": { "tags": [ "config-store-forward" ], "summary": "Describe Store and Forward Engine Resource Type", "description": "Provide information about the Store and Forward Engine resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "metrics": { "type": "object", "description": "The metrics of the resource type.", "properties": { "active": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/system-properties": { "get": { "tags": [ "config-system-properties" ], "summary": "Describe System Properties Resource Type", "description": "Provide information about the System Properties resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The default configuration for this resource type", "properties": { "systemName": { "description": "The name of this Ignition system, used to differentiate this system from others in a larger architecture.\n", "type": "string", "x-ignition-non-secret": false }, "designerRAM": { "default": "MB1024", "description": "Specify the maximum amount of memory that the designer has access to.\n", "type": "string", "enum": [ "MB128", "MB256", "MB512", "MB768", "MB1024", "MB1536", "MB2048", "MB4096" ], "x-ignition-non-secret": false }, "disable3DPipeline": { "default": true, "description": "Disables the Direct3D rendering pipeline launched clients. Direct3D can cause performance problems with XOR painting. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "disableDirectDraw": { "default": false, "description": "Disables the DirectDraw system for launched clients. Can be useful for some video cards that don't support DirectDraw well. (affects clients on Windows only)\n", "type": "boolean", "x-ignition-non-secret": false }, "useCondensedDialogFont": { "default": false, "description": "Designers and Vision Clients will use a condensed version of the \"Dialog\" font for better compatibility with pre-8.0 Vision project design. (affects clients on Windows and Linux only)\n", "type": "boolean", "x-ignition-non-secret": false }, "homepageUrl": { "default": "/app", "description": "The URL this gateway will redirect to when http://ip:port/ is visited. Can either be a relative path (e.g., /app/welcome), or fully qualified (e.g., https://inductiveautomation.com).\n", "type": "string", "x-ignition-non-secret": false }, "homepageNotes": { "default": "Welcome to your Ignition Gateway. This customizable area is intended to capture the critical details you want to document for this Gateway. You might include information about the environment (production, testing, or development), key workflows, or maintenance schedules. It's also a great place to list instructions for your team, important reminders about system health, or details about your configuration that require regular review. Use this space to keep everyone informed and ensure smooth operations across the board.", "description": "A customizable message that is displayed on the Ignition Gateway default homepage.", "type": "string", "x-ignition-non-secret": false }, "clientFallbackEnabled": { "default": false, "description": "Enables a Vision client to fall back to a project in a local Gateway if communication is lost to the central Gateway. Note that port 6501 must be open on the local machine.\n", "type": "boolean", "x-ignition-non-secret": false }, "secondsBeforeFailover": { "default": 60, "description": "The number of seconds to wait before switching to the local Gateway project after comm loss.\n", "type": "number", "x-ignition-non-secret": false }, "fallbackProjectName": { "description": "The local project to use during fallback.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupsEnabled": { "default": false, "description": "Enables the scheduled backup system which will automatically make backups at a scheduled time.\n", "type": "boolean", "x-ignition-non-secret": false }, "scheduledBackupPath": { "description": "A path to a folder in which to put the scheduled backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupTimes": { "default": "15 1 * * *", "description": "A UNIX crontab style scheduling string representing when to make the backups.\n", "type": "string", "x-ignition-non-secret": false }, "scheduledBackupRetentionCount": { "default": 5, "description": "The number of backups to keep in the backup folder.\n", "type": "number", "x-ignition-non-secret": false }, "scheduledBackupFilename": { "default": "${gatewayName}_Ignition-backup-${edition}${timestamp}.gwbk", "description": "The filename pattern used for creating scheduled and manually downloaded gateway backups.\n", "type": "string", "x-ignition-non-secret": false }, "automaticThreadDumpsEnabled": { "default": false, "description": "Enables automated thread dump generation when CPU utilization exceeds the CPU threshold.\n", "type": "boolean", "x-ignition-non-secret": false }, "automaticThreadDumpsIntervalSeconds": { "default": 60, "description": "Number of seconds between thread dumps when utilization threshold+duration is met.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThreshold": { "default": 70, "description": "CPU Usage Threshold (%) that when exceeded for a given duration (below) will trigger a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsCpuThresholdExceededDuration": { "default": 10, "description": "Duration (seconds) during CPU Usage Threshold exceedance to delay a thread dump capture.\n", "type": "number", "x-ignition-non-secret": false }, "automaticThreadDumpsRetentionCount": { "default": 50, "description": "The number of thread dumps to keep in the logs folder.\n", "type": "number", "x-ignition-non-secret": false }, "errorReportSMTPServer": { "description": "When not blank, user-reported errors will be emailed using this SMTP server.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportToEmail": { "description": "The email address that the error notification is from.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportFromEmail": { "description": "The email address(es) that will receive the error notification. Separate multiple email addresses with a semicolon (;).\n", "type": "string", "x-ignition-non-secret": false }, "errorReportUsername": { "description": "A username for the SMTP server, if required.\n", "type": "string", "x-ignition-non-secret": false }, "errorReportPassword": { "oneOf": [ { "type": "null", "title": "None", "description": "Absence of a secret value.", "examples": [ null ] }, { "type": "object", "title": "Embedded Secret", "properties": { "type": { "type": "string", "const": "Embedded", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "protected": { "type": "string", "title": "JWE Protected Header", "description": "The base64-url-encoding of the UTF-8-encoded JWE Protected Header." }, "encrypted_key": { "type": "string", "title": "JWE Encrypted Key", "description": "The base64-url-encoding of the JWE Encrypted Key.", "x-ignition-non-secret": true }, "iv": { "type": "string", "title": "JWE Initialization Vector", "description": "The base64-url-encoding of the JWE Initialization Vector." }, "ciphertext": { "type": "string", "title": "JWE Ciphertext", "description": "The base64-url-encoding of the JWE Ciphertext." }, "tag": { "type": "string", "title": "JWE Authentication Tag", "description": "The base64-url-encoding of the JWE Authentication Tag." } }, "required": [ "protected", "encrypted_key", "iv", "ciphertext", "tag" ], "examples": [ { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Embedded", "data": { "protected": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2R0NNIiwiemlwIjoiREVGIn0", "encrypted_key": "KOwMQyhZWnD1K4bv6dQcaxJiX60D5bp44_HUCIUP9VqDg3tgDNGCYA", "iv": "ctEHPYHYFvt-ASle", "ciphertext": "k8VVIw9t7Jc", "tag": "JsQrqtC8LH-YtDTccchMXw" } } ] }, { "type": "object", "title": "Referenced Secret", "properties": { "type": { "type": "string", "const": "Referenced", "title": "Secret Type", "description": "The type of secret. Embedded secrets embed the encrypted secret within the configuration. Referenced secrets reference the secret in a secret provider." }, "data": { "type": "object", "title": "Secret Data", "description": "The secret data. Embedded secrets are encrypted using JSON Web Encryption and encoded using the Flattened JWE JSON Serialization Syntax. Referenced secrets reference the secret using the secret provider and secret name pair.", "properties": { "providerName": { "type": "string", "title": "Secret Provider Name", "description": "The name of the secret provider." }, "secretName": { "type": "string", "title": "Secret Name", "description": "The name of the secret.", "x-ignition-non-secret": true } }, "required": [ "providerName", "secretName" ] } }, "required": [ "type", "data" ], "examples": [ { "type": "Referenced", "data": { "providerName": "foo", "secretName": "bar" } } ] } ], "description": "A password for the SMTP server, if required.\n" }, "multicastEnabled": { "default": true, "description": "Allows this Gateway to be discoverable on your local network.\n", "type": "boolean", "x-ignition-non-secret": false }, "multicastIPAddr": { "default": "231.1.1.1", "description": "Gateway messages will be broadcast on this address.\n", "type": "string", "x-ignition-non-secret": false }, "multicastSendPort": { "default": "4445", "description": "This port must be open on this machine to send multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastReceivePort": { "default": "4446", "description": "This port must be open on any machine that will receive multicast messages.\n", "type": "string", "x-ignition-non-secret": false }, "multicastIntervalMillis": { "default": "5000", "description": "The interval in milliseconds at which multicast messages will be sent.\n", "type": "string", "x-ignition-non-secret": false }, "gatewayScriptingProject": { "description": "The name of the Project that gateway-scoped scripts with no project affiliation can access user script libraries in.\n", "type": "string", "x-ignition-non-secret": false }, "enableTagReferenceStore": { "default": true, "description": "Enables the storing of Tag Reference entries to a database on the local Gateway for analysis in a Designer for 3rd party modules.\n", "type": "boolean", "x-ignition-non-secret": false }, "scriptMessageEncoding": { "default": "Protobuf", "description": "Sets the message encoding format used for script messages (system.util.sendMessage, sendRequest) between\nclient/designer and gateway.\n", "type": "string", "enum": [ "JavaSerialization", "Protobuf" ], "x-ignition-non-secret": false } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/tag-provider": { "get": { "tags": [ "config-tag-provider" ], "summary": "Describe Tag Providers Resource Type", "description": "Provide information about the Tag Providers resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "metrics": { "type": "object", "description": "The metrics of the resource type.", "properties": { "totalTagCount": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/translations": { "get": { "tags": [ "config-translations" ], "summary": "Describe Translations Resource Type", "description": "Provide information about the Translations resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "defaultConfig": { "description": "The Gateway's defined translation terms and settings", "type": "object", "properties": { "caseInsensitive": { "description": "Whether to ignore case differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreWhitespace": { "description": "Whether to ignore whitespace differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignorePunctuation": { "description": "Whether to ignore punctuation differences in terms", "type": "boolean", "x-ignition-non-secret": false }, "ignoreTags": { "description": "Whether to ignore HTML tags in terms", "type": "boolean", "x-ignition-non-secret": false }, "terms": { "type": "object", "description": "A map of locales to term translations", "examples": [ { "en-US": { "hello": "hello", "world": "world" }, "es-MX": { "hello": "hola", "world": "mundo" } } ], "additionalProperties": { "type": "object", "description": "A map of terms to translations", "additionalProperties": { "type": "string", "description": "The translation for the term", "examples": [ "Hello" ] } } } }, "required": [ "caseInsensitive", "ignoreWhitespace", "ignorePunctuation", "ignoreTags" ] } } } } } } }, "deprecated": false } }, "/data/api/v1/resources/type/ignition/user-source": { "get": { "tags": [ "config-user-source" ], "summary": "Describe User Sources Resource Type", "description": "Provide information about the User Sources resource type, including the number of resource files, overrides, etc.", "parameters": [], "responses": { "200": { "description": "Success, type description", "content": { "application/json": { "schema": { "type": "object", "properties": { "module": { "description": "Module identifier", "type": "string", "x-ignition-non-secret": false }, "typeId": { "description": "Resource type identifier", "type": "string", "x-ignition-non-secret": false }, "total": { "description": "Total number of defined resources in the current configuration collection.", "type": "number", "x-ignition-non-secret": false }, "overrides": { "description": "Number of resources that have definitions in more than one collection", "type": "number", "x-ignition-non-secret": false }, "singleton": { "description": "If true, this resource represents a singleton resource", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoint": { "description": "If true, this resource represents an extension point category", "type": "boolean", "x-ignition-non-secret": false }, "extensionPoints": { "description": "If this resource is an extension point, this list contains information about the extension points that are registered.", "type": "array", "items": { "type": "object", "properties": { "typeId": { "description": "The type identifier of this extension point", "type": "string", "x-ignition-non-secret": false }, "label": { "description": "The short name of this extension point", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A brief description of this extension point", "type": "string", "x-ignition-non-secret": false }, "canCreate": { "description": "Whether or not new instances of this extension point are allowed", "type": "boolean", "x-ignition-non-secret": false }, "addComponent": { "description": "The component that is used to add new instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "editComponent": { "description": "The component that is used to edit existing instances of this extension point", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false }, "menuActions": { "description": "Custom actions for the datagrid menu", "type": "array", "items": { "type": "object", "properties": { "title": { "description": "The text to be displayed in the menu", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Tooltip text to be displayed when hovering over the menu item", "type": "string", "x-ignition-non-secret": false }, "component": { "description": "The component to be displayed when the menu item is clicked", "$ref": "#/components/schemas/WebUiComponent", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "defaultSettings": { "description": "A prototype of the settings object for this extension point, with default values", "type": "object", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/restart-tasks/pending": { "get": { "tags": [ "restart-tasks" ], "summary": "Get all required restart tasks", "description": "Get a list of all tasks that are currently pending a gateway restart to complete.", "parameters": [], "responses": { "200": { "description": "List of all tasks that are currently pending a gateway restart to complete.", "content": { "application/json": { "schema": { "properties": { "pending": { "type": "array", "items": { "type": "string" } } }, "examples": [ { "pending": [ "Module Uninstalled: com.test.test", "Module Enabled: com.test.test2" ] } ] } } } } }, "deprecated": false } }, "/data/api/v1/restart-tasks/restart": { "post": { "tags": [ "restart-tasks" ], "summary": "Restart the Gateway", "description": "Restarts the gateway. **This will be disruptive to anyone currently using this gateway.** Proceed with caution.", "parameters": [ { "name": "confirm", "in": "query", "description": "Whether to confirm the restart.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": { "confirm": "true" } } } ], "responses": { "400": { "description": "Please confirm restart through a 'confirm' query parameter." }, "200": { "description": "Gateway will be restarted." } }, "deprecated": false } }, "/data/api/v1/scan-lock/config": { "get": { "tags": [ "config-management" ], "summary": "Configuration Scan Lock Info", "description": "Returns information about the currently held scan-lock, if any.", "parameters": [], "responses": { "200": { "description": "Information about the scan lock currently held", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "integer", "description": "Time the lock was acquired" }, "remaining": { "type": "integer", "description": "Remaining seconds before lock expires" }, "actor": { "type": "string", "description": "The user who acquired the lock" } } } } } }, "204": { "description": "If no lock is currently held" } }, "deprecated": false }, "post": { "tags": [ "config-management" ], "summary": "Acquire Configuration Scan Lock", "description": "Prevents changes from being applied to the configuration system for a limited time. Time may be specified\nin the request body. While this lock is held, any other changes will be queued (block) until the\nlock is released. While locked, it is safe to make external changes to the filesystem.\nThe next call to `POST /data/api/v1/scan/config` will release the lock.", "parameters": [], "requestBody": { "description": "Contains lock options, such as the time to hold lock before timing out.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "acquireTimeout": { "description": "Time (in seconds) to wait before successfully acquiring the lock. Default: 10", "type": "number", "x-ignition-non-secret": false }, "holdTimeout": { "description": "Time (in seconds) to hold the lock before timing out. Default: 60", "type": "number", "x-ignition-non-secret": false } } }, "example": { "acquireTimeout": 10, "holdTimeout": 60 } } } }, "responses": { "400": { "description": "Bad request body - unable to parse timeout option" }, "408": { "description": "Unable to acquire lock within timeout" }, "200": { "description": "Success - lock acquired", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "integer", "description": "Time the lock was acquired", "examples": [ 1757896518966 ] }, "remaining": { "type": "integer", "description": "Remaining seconds before lock expires", "examples": [ 60 ] }, "actor": { "type": "string", "description": "The user who acquired the lock", "examples": [ "admin" ] } } } } } }, "409": { "description": "Lock already held." } }, "deprecated": false } }, "/data/api/v1/scan-lock/projects": { "get": { "tags": [ "config-management" ], "summary": "Project Scan Lock Info", "description": "Returns information about the currently held scan-lock, if any.", "parameters": [], "responses": { "200": { "description": "Information about the scan lock currently held", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "integer", "description": "Time the lock was acquired" }, "remaining": { "type": "integer", "description": "Remaining seconds before lock expires" }, "actor": { "type": "string", "description": "The user who acquired the lock" } } } } } }, "204": { "description": "If no lock is currently held" } }, "deprecated": false }, "post": { "tags": [ "config-management" ], "summary": "Acquire Project Scan Lock", "description": "Prevents changes from being applied to the project system for a limited time. Time may be specified\nin the request body. While this lock is held, any other changes will be queued (block) until the\nlock is released. While locked, it is safe to make external changes to the filesystem.\nThe next call to `POST /data/api/v1/scan/projects` will release the lock.", "parameters": [], "requestBody": { "description": "Contains lock options, such as the time to hold lock before timing out.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "acquireTimeout": { "description": "Time (in seconds) to wait before successfully acquiring the lock. Default: 10", "type": "number", "x-ignition-non-secret": false }, "holdTimeout": { "description": "Time (in seconds) to hold the lock before timing out. Default: 60", "type": "number", "x-ignition-non-secret": false } } }, "example": { "acquireTimeout": 10, "holdTimeout": 60 } } } }, "responses": { "400": { "description": "Bad request body - unable to parse timeout option" }, "408": { "description": "Unable to acquire lock within timeout" }, "200": { "description": "Success - lock acquired", "content": { "application/json": { "schema": { "type": "object", "properties": { "timestamp": { "type": "integer", "description": "Time the lock was acquired", "examples": [ 1757896518967 ] }, "remaining": { "type": "integer", "description": "Remaining seconds before lock expires", "examples": [ 60 ] }, "actor": { "type": "string", "description": "The user who acquired the lock", "examples": [ "admin" ] } } } } } }, "409": { "description": "Lock already held." } }, "deprecated": false } }, "/data/api/v1/scan/config": { "get": { "tags": [ "config-management" ], "summary": "Configuration Scan Status", "description": "Returns the status of the configuration filesystem scan.", "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "scanActive": { "type": "boolean", "x-ignition-non-secret": false }, "lastScanTimestamp": { "type": "number", "x-ignition-non-secret": false }, "lastScanDuration": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-management" ], "summary": "Request Configuration Scan", "description": "Prompts the system to scan the filesystem for configuration changes. Will also release the scan lock, if\ncurrently being held.", "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "scanActive": { "type": "boolean", "x-ignition-non-secret": false }, "lastScanTimestamp": { "type": "number", "x-ignition-non-secret": false }, "lastScanDuration": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/scan/projects": { "get": { "tags": [ "config-management" ], "summary": "Project Scan Status", "description": "Returns the status of the project filesystem scan.", "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "scanActive": { "type": "boolean", "x-ignition-non-secret": false }, "lastScanTimestamp": { "type": "number", "x-ignition-non-secret": false }, "lastScanDuration": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false }, "post": { "tags": [ "config-management" ], "summary": "Request Project Scan", "description": "Prompts the system to scan the filesystem for project changes. Will also release the scan lock, if\ncurrently being held.", "parameters": [], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "scanActive": { "type": "boolean", "x-ignition-non-secret": false }, "lastScanTimestamp": { "type": "number", "x-ignition-non-secret": false }, "lastScanDuration": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/scim/{profile-name}/{scim-version}/Groups": { "get": { "tags": [ "user-management-scim" ], "summary": "List Group Resources", "description": "This endpoint returns a list of group resources.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank or the {scim-version} path parameter specifies an unsupported SCIM protocol version.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "500": { "description": "An internal server error occurred.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "200": { "description": "Success. Returns a list of groups that meet the query criteria.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "totalResults": { "description": "The total number of results returned by the list or query operation. The value may be larger than the number of resources returned, such as when returning a single page of results where multiple pages are available.", "type": "number", "x-ignition-non-secret": false }, "Resources": { "description": "A multi-valued list of complex objects containing the requested resources.", "type": "array", "items": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": " A unique identifier for a SCIM resource as defined by the service provider.", "type": "string", "x-ignition-non-secret": false }, "displayName": { "description": "A human-readable name for the Group.", "type": "string", "x-ignition-non-secret": false }, "members": { "description": "A list of members of the Group.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The value of an \"id\" attribute of a SCIM resource.", "type": "string", "x-ignition-non-secret": false }, "$ref": { "description": "The URI of a SCIM resource such as a \"User\", or a \"Group\".", "type": "string", "x-ignition-non-secret": false }, "display": { "description": "A human-readable name, primarily used for display purposes.", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "A label indicating the type of resource, e.g., \"User\" or \"Group\".", "type": "string", "enum": [ "User", "Group" ], "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "urn:ietf:params:scim:schemas:extension:inductiveautomation:2.0:Group": { "description": "A complex attribute containing group data for Ignition that doesn't fit well in the core group schema.", "type": "object", "properties": { "notes": { "description": "A human-readable note about the group.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "startIndex": { "description": "The 1-based index of the first result in the current set of results.", "type": "number", "x-ignition-non-secret": false }, "itemsPerPage": { "description": "The number of resources returned in a list response page.", "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false }, "post": { "tags": [ "user-management-scim" ], "summary": "Create Group Resource", "description": "This endpoint creates a new group resource.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The group to create.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": " A unique identifier for a SCIM resource as defined by the service provider.", "type": "string", "x-ignition-non-secret": false }, "displayName": { "description": "A human-readable name for the Group.", "type": "string", "x-ignition-non-secret": false }, "members": { "description": "A list of members of the Group.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The value of an \"id\" attribute of a SCIM resource.", "type": "string", "x-ignition-non-secret": false }, "$ref": { "description": "The URI of a SCIM resource such as a \"User\", or a \"Group\".", "type": "string", "x-ignition-non-secret": false }, "display": { "description": "A human-readable name, primarily used for display purposes.", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "A label indicating the type of resource, e.g., \"User\" or \"Group\".", "type": "string", "enum": [ "User", "Group" ], "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "urn:ietf:params:scim:schemas:extension:inductiveautomation:2.0:Group": { "description": "A complex attribute containing group data for Ignition that doesn't fit well in the core group schema.", "type": "object", "properties": { "notes": { "description": "A human-readable note about the group.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } }, "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank or the {scim-version} path parameter specifies an unsupported SCIM protocol version.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "500": { "description": "An internal server error occurred.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "409": { "description": "The request could not be completed due to a conflict with an existing resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "201": { "description": "Success. The group was created." }, "415": { "description": "The request specified a content type that is not supported. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } } }, "deprecated": false } }, "/data/api/v1/scim/{profile-name}/{scim-version}/Groups/{group-id}": { "get": { "tags": [ "user-management-scim" ], "summary": "Get Group Resource", "description": "This endpoint returns a group resource.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "group-id", "in": "path", "description": "The group ID.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank, the {scim-version} path parameter specifies an unsupported SCIM protocol version, or the {group-id} path parameter is missing or blank.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "500": { "description": "An internal server error occurred.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "200": { "description": "Success. Returns the group specified by the {group-id} parameter.", "content": { "application/json": { "schema": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": " A unique identifier for a SCIM resource as defined by the service provider.", "type": "string", "x-ignition-non-secret": false }, "displayName": { "description": "A human-readable name for the Group.", "type": "string", "x-ignition-non-secret": false }, "members": { "description": "A list of members of the Group.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The value of an \"id\" attribute of a SCIM resource.", "type": "string", "x-ignition-non-secret": false }, "$ref": { "description": "The URI of a SCIM resource such as a \"User\", or a \"Group\".", "type": "string", "x-ignition-non-secret": false }, "display": { "description": "A human-readable name, primarily used for display purposes.", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "A label indicating the type of resource, e.g., \"User\" or \"Group\".", "type": "string", "enum": [ "User", "Group" ], "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "urn:ietf:params:scim:schemas:extension:inductiveautomation:2.0:Group": { "description": "A complex attribute containing group data for Ignition that doesn't fit well in the core group schema.", "type": "object", "properties": { "notes": { "description": "A human-readable note about the group.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false }, "put": { "tags": [ "user-management-scim" ], "summary": "Modify Group Resource", "description": "This endpoint modifies a group resource.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "group-id", "in": "path", "description": "The group ID.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank, the {scim-version} path parameter specifies an unsupported SCIM protocol version, or the {group-id} path parameter is missing or blank.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "500": { "description": "An internal server error occurred.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "200": { "description": "Success. The group specified by the {group-id} path parameter was modified.", "content": { "application/json": { "schema": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": " A unique identifier for a SCIM resource as defined by the service provider.", "type": "string", "x-ignition-non-secret": false }, "displayName": { "description": "A human-readable name for the Group.", "type": "string", "x-ignition-non-secret": false }, "members": { "description": "A list of members of the Group.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The value of an \"id\" attribute of a SCIM resource.", "type": "string", "x-ignition-non-secret": false }, "$ref": { "description": "The URI of a SCIM resource such as a \"User\", or a \"Group\".", "type": "string", "x-ignition-non-secret": false }, "display": { "description": "A human-readable name, primarily used for display purposes.", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "A label indicating the type of resource, e.g., \"User\" or \"Group\".", "type": "string", "enum": [ "User", "Group" ], "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "urn:ietf:params:scim:schemas:extension:inductiveautomation:2.0:Group": { "description": "A complex attribute containing group data for Ignition that doesn't fit well in the core group schema.", "type": "object", "properties": { "notes": { "description": "A human-readable note about the group.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } }, "409": { "description": "The request could not be completed due to a conflict with an existing resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "415": { "description": "The request specified a content type that is not supported. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } } }, "deprecated": false }, "delete": { "tags": [ "user-management-scim" ], "summary": "Delete Group Resource", "description": "This path deletes a group resource.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "group-id", "in": "path", "description": "The group ID.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank, the {scim-version} path parameter specifies an unsupported SCIM protocol version, or the {group-id} path parameter is missing or blank.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "500": { "description": "An internal server error occurred.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "204": { "description": "Success. The group specified by the {group-id} path parameter was deleted." } }, "deprecated": false } }, "/data/api/v1/scim/{profile-name}/{scim-version}/ResourceTypes": { "get": { "tags": [ "user-management-scim" ], "summary": "List Resource Types", "description": "This endpoint is used to discover the types of resources available on a SCIM service provider (e.g., Users and Groups). Each resource type defines the endpoints, the core schema URI that defines the resource, and any supported schema extensions.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank or the {scim-version} path parameter specifies an unsupported SCIM protocol version.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "200": { "description": "Success. Returns a list of all resource types.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "totalResults": { "description": "The total number of results returned by the list or query operation. The value may be larger than the number of resources returned, such as when returning a single page of results where multiple pages are available.", "type": "number", "x-ignition-non-secret": false }, "Resources": { "description": "A multi-valued list of complex objects containing the requested resources.", "type": "array", "items": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": "The resource type's server unique id. This is often the same value as the \"name\" attribute.", "type": "string", "x-ignition-non-secret": false }, "name": { "description": "The resource type name.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The resource type's human-readable description.", "type": "string", "x-ignition-non-secret": false }, "endpoint": { "description": "The resource type's HTTP-addressable endpoint relative to the Base URL of the service provider, e.g., \"/Users\".\n", "type": "string", "x-ignition-non-secret": false }, "schema": { "description": "The resource type's primary/base schema URI, e.g., \"urn:ietf:params:scim:schemas:core:2.0:User\".\n", "type": "string", "x-ignition-non-secret": false } }, "required": [ "name", "endpoint", "schema" ] }, "x-ignition-non-secret": false }, "startIndex": { "description": "The 1-based index of the first result in the current set of results.", "type": "number", "x-ignition-non-secret": false }, "itemsPerPage": { "description": "The number of resources returned in a list response page.", "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/scim/{profile-name}/{scim-version}/ResourceTypes/{type-id}": { "get": { "tags": [ "user-management-scim" ], "summary": "Get Resource Type", "description": "This endpoint is used to retrieve information about the specified resource type available on a SCIM service provider. The type-id path parameter must be set to the resource type of the resource to retrieve (e.g., 'User', 'Group').\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "type-id", "in": "path", "description": "The ID of the resource type to retrieve.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank, the {scim-version} path parameter specifies an unsupported SCIM protocol version, or the {type-id} path parameter is missing or blank.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The user source profile with the given name or the schema with the specified ID does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "200": { "description": "Success. Returns the schema specified by the {type-id} path parameter.", "content": { "application/json": { "schema": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": "The resource type's server unique id. This is often the same value as the \"name\" attribute.", "type": "string", "x-ignition-non-secret": false }, "name": { "description": "The resource type name.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The resource type's human-readable description.", "type": "string", "x-ignition-non-secret": false }, "endpoint": { "description": "The resource type's HTTP-addressable endpoint relative to the Base URL of the service provider, e.g., \"/Users\".\n", "type": "string", "x-ignition-non-secret": false }, "schema": { "description": "The resource type's primary/base schema URI, e.g., \"urn:ietf:params:scim:schemas:core:2.0:User\".\n", "type": "string", "x-ignition-non-secret": false } }, "required": [ "name", "endpoint", "schema" ] } } } } }, "deprecated": false } }, "/data/api/v1/scim/{profile-name}/{scim-version}/Schemas": { "get": { "tags": [ "user-management-scim" ], "summary": "List Schemas", "description": "This endpoint is used to retrieve information about resource schemas supported by a SCIM service provider.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank or the {scim-version} path parameter specifies an unsupported SCIM protocol version.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "200": { "description": "Success. Returns a list of all schemas.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "totalResults": { "description": "The total number of results returned by the list or query operation. The value may be larger than the number of resources returned, such as when returning a single page of results where multiple pages are available.", "type": "number", "x-ignition-non-secret": false }, "Resources": { "description": "A multi-valued list of complex objects containing the requested resources.", "type": "array", "items": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": " A unique identifier for a SCIM resource as defined by the service provider.", "type": "string", "x-ignition-non-secret": false }, "name": { "description": "The schema's human-readable name.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The schema's human-readable description.", "type": "string", "x-ignition-non-secret": false }, "attributes": { "description": "Service provider attributes and their qualities.", "type": "array", "items": { "type": "object", "properties": { "name": { "description": "The attribute's name.", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "The attribute's data type.", "type": "string", "enum": [ "string", "boolean", "decimal", "integer", "dateTime", "reference", "complex" ], "x-ignition-non-secret": false }, "multiValued": { "description": "A Boolean value indicating the attribute's plurality.", "type": "boolean", "x-ignition-non-secret": false }, "description": { "description": "The attribute's human-readable description.", "type": "string", "x-ignition-non-secret": false }, "required": { "description": "A Boolean value that specifies whether or not the attribute is required.", "type": "boolean", "x-ignition-non-secret": false }, "caseExact": { "description": "A Boolean value that specifies whether or not the attribute is case-sensitive.", "type": "boolean", "x-ignition-non-secret": false }, "mutability": { "description": "A single keyword indicating the circumstances under which the value of the attribute can be (re)defined.", "type": "string", "enum": [ "readOnly", "readWrite", "immutable", "writeOnly" ], "x-ignition-non-secret": false }, "returned": { "description": "A single keyword that indicates when an attribute and associated values are returned in response to a GET request or in response to a PUT, POST, or PATCH request.", "type": "string", "enum": [ "always", "never", "default", "request" ], "x-ignition-non-secret": false }, "uniqueness": { "description": "A single keyword that specifies how the service provider enforces uniqueness of attribute values.", "type": "string", "enum": [ "none", "server", "global" ], "x-ignition-non-secret": false }, "referenceTypes": { "description": "The SCIM resource types that may be referenced.", "type": "array", "items": { "type": "object" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "startIndex": { "description": "The 1-based index of the first result in the current set of results.", "type": "number", "x-ignition-non-secret": false }, "itemsPerPage": { "description": "The number of resources returned in a list response page.", "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/scim/{profile-name}/{scim-version}/Schemas/{schema-id}": { "get": { "tags": [ "user-management-scim" ], "summary": "Get Schema", "description": "This endpoint is used to retrieve information about the specified resource schema supported by a SCIM service provider. The {schema-id} path parameter must be set to the schema URI of the schema to retrieve (e.g., 'urn:ietf:params:scim:schemas:core:2.0:User').\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "schema-id", "in": "path", "description": "The ID of the schema to retrieve.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank, the {scim-version} path parameter specifies an unsupported SCIM protocol version, or the {schema-id} path parameter is missing or blank.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The user source profile with the given name or the schema with the specified ID does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "200": { "description": "Success. Returns the schema specified by the {schema-id} path parameter.", "content": { "application/json": { "schema": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": " A unique identifier for a SCIM resource as defined by the service provider.", "type": "string", "x-ignition-non-secret": false }, "name": { "description": "The schema's human-readable name.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "The schema's human-readable description.", "type": "string", "x-ignition-non-secret": false }, "attributes": { "description": "Service provider attributes and their qualities.", "type": "array", "items": { "type": "object", "properties": { "name": { "description": "The attribute's name.", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "The attribute's data type.", "type": "string", "enum": [ "string", "boolean", "decimal", "integer", "dateTime", "reference", "complex" ], "x-ignition-non-secret": false }, "multiValued": { "description": "A Boolean value indicating the attribute's plurality.", "type": "boolean", "x-ignition-non-secret": false }, "description": { "description": "The attribute's human-readable description.", "type": "string", "x-ignition-non-secret": false }, "required": { "description": "A Boolean value that specifies whether or not the attribute is required.", "type": "boolean", "x-ignition-non-secret": false }, "caseExact": { "description": "A Boolean value that specifies whether or not the attribute is case-sensitive.", "type": "boolean", "x-ignition-non-secret": false }, "mutability": { "description": "A single keyword indicating the circumstances under which the value of the attribute can be (re)defined.", "type": "string", "enum": [ "readOnly", "readWrite", "immutable", "writeOnly" ], "x-ignition-non-secret": false }, "returned": { "description": "A single keyword that indicates when an attribute and associated values are returned in response to a GET request or in response to a PUT, POST, or PATCH request.", "type": "string", "enum": [ "always", "never", "default", "request" ], "x-ignition-non-secret": false }, "uniqueness": { "description": "A single keyword that specifies how the service provider enforces uniqueness of attribute values.", "type": "string", "enum": [ "none", "server", "global" ], "x-ignition-non-secret": false }, "referenceTypes": { "description": "The SCIM resource types that may be referenced.", "type": "array", "items": { "type": "object" }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/api/v1/scim/{profile-name}/{scim-version}/ServiceProviderConfig": { "get": { "tags": [ "user-management-scim" ], "summary": "Get Service Provider Configuration", "description": "The service provider configuration resource enables a service provider to discover SCIM specification features in a standardized form as well as provide additional implementation details to clients.", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank or the {scim-version} path parameter specifies an unsupported SCIM protocol version.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "500": { "description": "An internal server error occurred.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "200": { "description": "Success. Returns the service provider configuration for the given user source profile.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "documentationUri": { "description": "An HTTP-addressable URL pointing to the service provider's human-consumable help documentation.", "type": "string", "x-ignition-non-secret": false }, "patch": { "description": "A complex type that specifies PATCH configuration options.", "type": "object", "properties": { "supported": { "description": "A Boolean value specifying whether or not the service provider supports PATCH.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "supported" ], "x-ignition-non-secret": false }, "bulk": { "description": "A complex type that specifies bulk configuration options.", "type": "object", "properties": { "supported": { "description": "A Boolean value specifying whether or not the operation is supported.", "type": "boolean", "x-ignition-non-secret": false }, "maxOperations": { "description": "An integer value specifying the maximum number of operations.", "type": "number", "x-ignition-non-secret": false }, "maxPayloadSize": { "description": "An integer value specifying the maximum payload size in bytes.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "supported", "maxOperations", "maxPayloadSize" ], "x-ignition-non-secret": false }, "filter": { "description": "A complex type that specifies filter configuration options.", "type": "object", "properties": { "supported": { "description": "A Boolean value specifying whether or not the operation is supported.", "type": "boolean", "x-ignition-non-secret": false }, "maxResults": { "description": "An integer value specifying the maximum number of resources returned in a response.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "supported", "maxResults" ], "x-ignition-non-secret": false }, "changePassword": { "description": "A complex type that specifies change password configuration options.", "type": "object", "properties": { "supported": { "description": "A Boolean value specifying whether or not the operation is supported.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "supported" ], "x-ignition-non-secret": true }, "sort": { "description": "A complex type that specifies sort configuration options.", "type": "object", "properties": { "supported": { "description": "A Boolean value specifying whether or not the operation is supported.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "supported" ], "x-ignition-non-secret": false }, "etag": { "description": "A complex type that specifies ETag configuration options.", "type": "object", "properties": { "supported": { "description": "A Boolean value specifying whether or not the operation is supported.", "type": "boolean", "x-ignition-non-secret": false } }, "required": [ "supported" ], "x-ignition-non-secret": false }, "authenticationSchemes": { "description": "A complex type that specifies authentication scheme configuration options.", "type": "array", "items": { "type": "object", "properties": { "type": { "description": "The authentication scheme. This specification defines the values \"oauth\", \"oauth2\", \"oauthbearertoken\", \"httpbasic\", and \"httpdigest\".", "type": "string", "enum": [ "oauth", "oauth2", "oauthbearertoken", "httpbasic", "httpdigest", "other" ], "x-ignition-non-secret": false }, "name": { "description": "The common authentication scheme name, e.g., HTTP Basic.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "A description of the authentication scheme.", "type": "string", "x-ignition-non-secret": false }, "specUri": { "description": "An HTTP-addressable URL pointing to the authentication scheme's specification.", "type": "string", "x-ignition-non-secret": false }, "documentationUri": { "description": "An HTTP-addressable URL pointing to the authentication scheme's usage documentation.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "type", "name", "description" ] }, "x-ignition-non-secret": false } }, "required": [ "schemas", "patch", "bulk", "filter", "changePassword", "sort", "etag", "authenticationSchemes" ] } } } } }, "deprecated": false } }, "/data/api/v1/scim/{profile-name}/{scim-version}/Users": { "get": { "tags": [ "user-management-scim" ], "summary": "List User Resources", "description": "This path returns a list of user resources.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank or the {scim-version} path parameter specifies an unsupported SCIM protocol version.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "500": { "description": "An internal server error occurred.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "200": { "description": "Success. Returns a list of users that meet the query criteria.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "totalResults": { "description": "The total number of results returned by the list or query operation. The value may be larger than the number of resources returned, such as when returning a single page of results where multiple pages are available.", "type": "number", "x-ignition-non-secret": false }, "Resources": { "description": "A multi-valued list of complex objects containing the requested resources.", "type": "array", "items": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": " A unique identifier for a SCIM resource as defined by the service provider.", "type": "string", "x-ignition-non-secret": false }, "userName": { "description": "A service provider's unique identifier for the user, typically used by the user to directly authenticate to the service provider.", "type": "string", "x-ignition-non-secret": false }, "name": { "description": "The components of the user's name.", "type": "object", "properties": { "familyName": { "description": "The family name of the User, or last name in most Western languages (e.g., \"Jensen\" given the full name \"Ms. Barbara Jane Jensen, III\").", "type": "string", "x-ignition-non-secret": false }, "givenName": { "description": "The given name of the User, or first name in most Western languages (e.g., \"Barbara\" given the full name \"Ms. Barbara Jane Jensen, III\").", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "password": { "description": "The User's cleartext password. This attribute is intended to be used as a means to specify an initial password when creating a new User or to reset an existing User's password.", "type": "string", "x-ignition-non-secret": true }, "groups": { "description": "A list of groups to which the user belongs, either through direct membership, through nested groups, or dynamically calculated.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The identifier of the User's group.", "type": "string", "x-ignition-non-secret": false }, "$ref": { "description": "The URI of the corresponding 'Group' resource to which the user belongs.", "type": "string", "x-ignition-non-secret": false }, "display": { "description": "A human-readable name, primarily used for display purposes.", "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "urn:ietf:params:scim:schemas:extension:inductiveautomation:2.0:User": { "description": "A complex attribute containing user data for Ignition that doesn't fit well in the core user schema or the enterprise user schema extension.", "type": "object", "properties": { "badge": { "description": "The user's badge number.", "type": "string", "x-ignition-non-secret": false }, "language": { "description": "The user's language as an ISO 639 string.", "type": "string", "x-ignition-non-secret": false }, "notes": { "description": "A human-readable note about the user.", "type": "string", "x-ignition-non-secret": false }, "contactInfo": { "description": "The user's contact information.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The contact value. For example: if the contact type is 'email', then the value should be the user's email address.", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "The contact type, such as 'email'.", "enum": [ "email", "sms" ], "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "schedule": { "description": "The user's schedule.", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustments": { "description": "The user's schedule adjustments.", "type": "array", "items": { "type": "object", "properties": { "start": { "description": "The start date and time of the schedule adjustment.", "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "end": { "description": "The end date and time of the schedule adjustment.", "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "available": { "description": "Whether the user is available during this time.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "note": { "description": "A human-readable note about the schedule adjustment.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "start", "end" ] }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "startIndex": { "description": "The 1-based index of the first result in the current set of results.", "type": "number", "x-ignition-non-secret": false }, "itemsPerPage": { "description": "The number of resources returned in a list response page.", "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false }, "post": { "tags": [ "user-management-scim" ], "summary": "Create User Resource", "description": "This endpoint creates a new user resource.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "requestBody": { "description": "The user to create.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": " A unique identifier for a SCIM resource as defined by the service provider.", "type": "string", "x-ignition-non-secret": false }, "userName": { "description": "A service provider's unique identifier for the user, typically used by the user to directly authenticate to the service provider.", "type": "string", "x-ignition-non-secret": false }, "name": { "description": "The components of the user's name.", "type": "object", "properties": { "familyName": { "description": "The family name of the User, or last name in most Western languages (e.g., \"Jensen\" given the full name \"Ms. Barbara Jane Jensen, III\").", "type": "string", "x-ignition-non-secret": false }, "givenName": { "description": "The given name of the User, or first name in most Western languages (e.g., \"Barbara\" given the full name \"Ms. Barbara Jane Jensen, III\").", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "password": { "description": "The User's cleartext password. This attribute is intended to be used as a means to specify an initial password when creating a new User or to reset an existing User's password.", "type": "string", "x-ignition-non-secret": true }, "groups": { "description": "A list of groups to which the user belongs, either through direct membership, through nested groups, or dynamically calculated.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The identifier of the User's group.", "type": "string", "x-ignition-non-secret": false }, "$ref": { "description": "The URI of the corresponding 'Group' resource to which the user belongs.", "type": "string", "x-ignition-non-secret": false }, "display": { "description": "A human-readable name, primarily used for display purposes.", "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "urn:ietf:params:scim:schemas:extension:inductiveautomation:2.0:User": { "description": "A complex attribute containing user data for Ignition that doesn't fit well in the core user schema or the enterprise user schema extension.", "type": "object", "properties": { "badge": { "description": "The user's badge number.", "type": "string", "x-ignition-non-secret": false }, "language": { "description": "The user's language as an ISO 639 string.", "type": "string", "x-ignition-non-secret": false }, "notes": { "description": "A human-readable note about the user.", "type": "string", "x-ignition-non-secret": false }, "contactInfo": { "description": "The user's contact information.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The contact value. For example: if the contact type is 'email', then the value should be the user's email address.", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "The contact type, such as 'email'.", "enum": [ "email", "sms" ], "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "schedule": { "description": "The user's schedule.", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustments": { "description": "The user's schedule adjustments.", "type": "array", "items": { "type": "object", "properties": { "start": { "description": "The start date and time of the schedule adjustment.", "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "end": { "description": "The end date and time of the schedule adjustment.", "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "available": { "description": "Whether the user is available during this time.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "note": { "description": "A human-readable note about the schedule adjustment.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "start", "end" ] }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } }, "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank or the {scim-version} path parameter specifies an unsupported SCIM protocol version.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "500": { "description": "An internal server error occurred.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "201": { "description": "Success. The user was created." }, "415": { "description": "The request specified a content type that is not supported. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } } }, "deprecated": false } }, "/data/api/v1/scim/{profile-name}/{scim-version}/Users/{user-id}": { "get": { "tags": [ "user-management-scim" ], "summary": "Get User Resource", "description": "This endpoint returns a user resource.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "user-id", "in": "path", "description": "The user ID.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank, the {scim-version} path parameter specifies an unsupported SCIM protocol version, or the {user-id} path parameter is missing or blank.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "500": { "description": "An internal server error occurred.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "200": { "description": "Success. Returns the user specified by the {user-id} path parameter.", "content": { "application/json": { "schema": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": " A unique identifier for a SCIM resource as defined by the service provider.", "type": "string", "x-ignition-non-secret": false }, "userName": { "description": "A service provider's unique identifier for the user, typically used by the user to directly authenticate to the service provider.", "type": "string", "x-ignition-non-secret": false }, "name": { "description": "The components of the user's name.", "type": "object", "properties": { "familyName": { "description": "The family name of the User, or last name in most Western languages (e.g., \"Jensen\" given the full name \"Ms. Barbara Jane Jensen, III\").", "type": "string", "x-ignition-non-secret": false }, "givenName": { "description": "The given name of the User, or first name in most Western languages (e.g., \"Barbara\" given the full name \"Ms. Barbara Jane Jensen, III\").", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "password": { "description": "The User's cleartext password. This attribute is intended to be used as a means to specify an initial password when creating a new User or to reset an existing User's password.", "type": "string", "x-ignition-non-secret": true }, "groups": { "description": "A list of groups to which the user belongs, either through direct membership, through nested groups, or dynamically calculated.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The identifier of the User's group.", "type": "string", "x-ignition-non-secret": false }, "$ref": { "description": "The URI of the corresponding 'Group' resource to which the user belongs.", "type": "string", "x-ignition-non-secret": false }, "display": { "description": "A human-readable name, primarily used for display purposes.", "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "urn:ietf:params:scim:schemas:extension:inductiveautomation:2.0:User": { "description": "A complex attribute containing user data for Ignition that doesn't fit well in the core user schema or the enterprise user schema extension.", "type": "object", "properties": { "badge": { "description": "The user's badge number.", "type": "string", "x-ignition-non-secret": false }, "language": { "description": "The user's language as an ISO 639 string.", "type": "string", "x-ignition-non-secret": false }, "notes": { "description": "A human-readable note about the user.", "type": "string", "x-ignition-non-secret": false }, "contactInfo": { "description": "The user's contact information.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The contact value. For example: if the contact type is 'email', then the value should be the user's email address.", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "The contact type, such as 'email'.", "enum": [ "email", "sms" ], "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "schedule": { "description": "The user's schedule.", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustments": { "description": "The user's schedule adjustments.", "type": "array", "items": { "type": "object", "properties": { "start": { "description": "The start date and time of the schedule adjustment.", "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "end": { "description": "The end date and time of the schedule adjustment.", "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "available": { "description": "Whether the user is available during this time.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "note": { "description": "A human-readable note about the schedule adjustment.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "start", "end" ] }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } } }, "deprecated": false }, "put": { "tags": [ "user-management-scim" ], "summary": "Modify User Resource", "description": "This endpoint modifies a user resource.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "user-id", "in": "path", "description": "The user ID.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank, the {scim-version} path parameter specifies an unsupported SCIM protocol version, or the {user-id} path parameter is missing or blank.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "500": { "description": "An internal server error occurred.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "200": { "description": "Success. The user specified by the {user-id} path parameter was modified.", "content": { "application/json": { "schema": { "type": "object", "properties": { "meta": { "description": "A complex attribute containing resource metadata. This attribute is ignored when provided by clients.\n", "type": "object", "properties": { "resourceType": { "description": "The name of the resource type of the resource.", "type": "string", "x-ignition-non-secret": false }, "location": { "description": "The URI of the resource being returned.", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "schemas": { "description": "A list of one or more URIs that indicate included SCIM schemas that are used to indicate the attributes contained within a resource.\n", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "id": { "description": " A unique identifier for a SCIM resource as defined by the service provider.", "type": "string", "x-ignition-non-secret": false }, "userName": { "description": "A service provider's unique identifier for the user, typically used by the user to directly authenticate to the service provider.", "type": "string", "x-ignition-non-secret": false }, "name": { "description": "The components of the user's name.", "type": "object", "properties": { "familyName": { "description": "The family name of the User, or last name in most Western languages (e.g., \"Jensen\" given the full name \"Ms. Barbara Jane Jensen, III\").", "type": "string", "x-ignition-non-secret": false }, "givenName": { "description": "The given name of the User, or first name in most Western languages (e.g., \"Barbara\" given the full name \"Ms. Barbara Jane Jensen, III\").", "type": "string", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "password": { "description": "The User's cleartext password. This attribute is intended to be used as a means to specify an initial password when creating a new User or to reset an existing User's password.", "type": "string", "x-ignition-non-secret": true }, "groups": { "description": "A list of groups to which the user belongs, either through direct membership, through nested groups, or dynamically calculated.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The identifier of the User's group.", "type": "string", "x-ignition-non-secret": false }, "$ref": { "description": "The URI of the corresponding 'Group' resource to which the user belongs.", "type": "string", "x-ignition-non-secret": false }, "display": { "description": "A human-readable name, primarily used for display purposes.", "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "urn:ietf:params:scim:schemas:extension:inductiveautomation:2.0:User": { "description": "A complex attribute containing user data for Ignition that doesn't fit well in the core user schema or the enterprise user schema extension.", "type": "object", "properties": { "badge": { "description": "The user's badge number.", "type": "string", "x-ignition-non-secret": false }, "language": { "description": "The user's language as an ISO 639 string.", "type": "string", "x-ignition-non-secret": false }, "notes": { "description": "A human-readable note about the user.", "type": "string", "x-ignition-non-secret": false }, "contactInfo": { "description": "The user's contact information.", "type": "array", "items": { "type": "object", "properties": { "value": { "description": "The contact value. For example: if the contact type is 'email', then the value should be the user's email address.", "type": "string", "x-ignition-non-secret": false }, "type": { "description": "The contact type, such as 'email'.", "enum": [ "email", "sms" ], "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false }, "schedule": { "description": "The user's schedule.", "type": "string", "x-ignition-non-secret": false }, "scheduleAdjustments": { "description": "The user's schedule adjustments.", "type": "array", "items": { "type": "object", "properties": { "start": { "description": "The start date and time of the schedule adjustment.", "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "end": { "description": "The end date and time of the schedule adjustment.", "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "available": { "description": "Whether the user is available during this time.", "default": false, "type": "boolean", "x-ignition-non-secret": false }, "note": { "description": "A human-readable note about the schedule adjustment.", "type": "string", "x-ignition-non-secret": false } }, "required": [ "start", "end" ] }, "x-ignition-non-secret": false } }, "x-ignition-non-secret": false } } } } } }, "415": { "description": "The request specified a content type that is not supported. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } } }, "deprecated": false }, "delete": { "tags": [ "user-management-scim" ], "summary": "Delete User Resource", "description": "This endpoint deletes a user resource.\n", "parameters": [ { "name": "profile-name", "in": "path", "description": "The name of the user source profile.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "scim-version", "in": "path", "description": "The SCIM protocol version. Optionally, the protocol version can be omitted and the highest supported version will be used.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "user-id", "in": "path", "description": "The user ID.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The {profile-name} path parameter is missing or blank, the {scim-version} path parameter specifies an unsupported SCIM protocol version, or the {user-id} path parameter is missing or blank.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "401": { "description": "The request is not authorized. The user is not authenticated or the authentication token is invalid.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "403": { "description": "The request is not authorized. The user does not have permission to access the requested resource.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "500": { "description": "An internal server error occurred.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "404": { "description": "The {profile-name} path parameter specifies a user source profile that does not exist.", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "406": { "description": "Unable to negotiate response content type. The following are supported: application/scim+json, application/json", "content": { "application/json": { "schema": { "type": "object", "properties": { "schemas": { "description": "A list of URIs that indicate the SCIM schemas that are applicable to the contents of the error response.", "type": "array", "items": { "type": "string", "schemas": "string" }, "x-ignition-non-secret": false }, "scimType": { "description": "A SCIM detail error keyword.", "type": "string", "x-ignition-non-secret": false }, "detail": { "description": "A detailed human-readable message.", "type": "string", "x-ignition-non-secret": false }, "status": { "description": "The HTTP status code expressed as a JSON string.", "type": "number", "x-ignition-non-secret": false } }, "required": [ "status" ] } } } }, "204": { "description": "Success. The user specified by the {user-id} path parameter was deleted." } }, "deprecated": false } }, "/data/api/v1/scripts": { "get": { "tags": [ "running-scripts" ], "summary": "Running Scripts", "description": "All of the currently executing scripts on the gateway.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "threadId": { "type": "number", "x-ignition-non-secret": false }, "executionStart": { "type": "number", "x-ignition-non-secret": false }, "elapsedMillis": { "type": "number", "x-ignition-non-secret": false }, "description": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/scripts/cancel-script/{id}": { "delete": { "tags": [ "running-scripts" ], "summary": "Cancel Script", "description": "Cancels the execution of the specified script.", "parameters": [ { "name": "id", "in": "path", "description": "n/a", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false } ], "responses": { "200": { "description": "Script cancelled successfully." } }, "deprecated": false } }, "/data/api/v1/scripts/diagnostics/{type}": { "get": { "tags": [ "gateway-scripts" ], "summary": "Gateway Script Diagnostics", "description": "Diagnostic information for all scripts in enabled projects on the gateway.", "parameters": [ { "name": "type", "in": "path", "description": "The type of script for which to retrieve diagnostic information.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "500": { "description": "There was an error retrieving script diagnostics." }, "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "type": "integer" }, "projectName": { "type": "string" }, "enabled": { "type": "boolean" }, "lastExecution": { "type": "integer" }, "duration": { "type": "integer" }, "details": { "type": "object" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/secret-providers/{provider-name}/secrets": { "get": { "tags": [ "secret-providers" ], "summary": "List Provider Secrets", "description": "Discover the list of secrets managed by a provider.", "parameters": [ { "name": "provider-name", "in": "path", "description": "The name of the secret provider.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The provider-name path parameter is missing or blank." }, "500": { "description": "A server error prevented listing the provider secrets." }, "404": { "description": "Secret Provider with the given name does not exist." }, "501": { "description": "Secret Provider with the given name does not support listing secrets." }, "200": { "description": "Success. Returns a JSON object with a single property named 'secrets' whose value is an array of strings representing the names of each secret managed by the provider with the given name.", "content": { "application/json": { "schema": { "type": "object", "properties": { "secrets": { "type": "array", "items": { "type": "string" }, "x-ignition-non-secret": true } }, "examples": [ { "secrets": [ "SecretA", "SecretB", "SecretC" ] } ] } } } } }, "deprecated": false } }, "/data/api/v1/sync/items": { "get": { "tags": [ "data-syncs" ], "summary": "Get Syncable Items", "description": "Get all syncable items from on the gateway.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "number", "x-ignition-non-secret": false }, "key": { "type": "string", "x-ignition-non-secret": true }, "syncType": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/api/v1/sync/reset": { "post": { "tags": [ "data-syncs" ], "summary": "Data Syncs Reset", "description": "Reset the Data Syncs of the provided keys.", "parameters": [], "requestBody": { "description": "Body contains the keys of one or more data syncs to reset.", "required": true, "content": { "application/json": { "schema": { "properties": { "keys": { "type": "array", "description": "The keys of the data syncs to be reset", "x-ignition-non-secret": true } }, "items": { "type": "string" } } } } }, "responses": { "400": { "description": "Body must contain one or more data sync keys" }, "404": { "description": "A data sync with the given key was not found" }, "200": { "description": "Data Sync reset", "content": { "application/json": { "schema": { "type": "boolean" } } } } }, "deprecated": false } }, "/data/api/v1/systemPerformance/charts": { "get": { "tags": [ "system-performance" ], "summary": "Historic Performance Data", "description": "Returns a list of historical gateway CPU and memory usage.", "parameters": [], "responses": { "200": { "description": "Data retrieved successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "cpuChartDatapoints": { "type": "array", "items": { "properties": { "histId": { "type": "integer" }, "timestamp": { "type": "integer" }, "value": { "type": "number" } } } }, "memoryChartDatapoints": { "properties": { "heapMemoryDatapoints": { "type": "array", "items": { "properties": { "histId": { "type": "integer" }, "timestamp": { "type": "integer" }, "value": { "type": "number" } } } }, "nonHeapMemoryDatapoints": { "type": "array", "items": { "properties": { "histId": { "type": "integer" }, "timestamp": { "type": "integer" }, "value": { "type": "number" } } } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/systemPerformance/currentGauges": { "get": { "tags": [ "system-performance" ], "summary": "Current Performance Data", "description": "Returns an object containing the current gateway CPU and memory usage.", "parameters": [], "responses": { "200": { "description": "Data retrieved successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "cpu": { "type": "number" }, "heapMemory": { "type": "number" }, "nonHeapMemory": { "type": "number" } } } } } } }, "deprecated": false } }, "/data/api/v1/systemPerformance/driftEvents": { "get": { "tags": [ "system-performance" ], "summary": "System Clock Drift Events", "description": "Returns a list of historical system clock drift events.", "parameters": [], "responses": { "200": { "description": "Data retrieved successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "clockDriftEvents": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": "string" }, "status": { "type": "string" }, "timestamp": { "type": "integer" } } } } } } } } } }, "deprecated": false } }, "/data/api/v1/systemPerformance/driftGauge": { "get": { "tags": [ "system-performance" ], "summary": "Current System Clock Drift", "description": "Returns the current drift of the system clock.", "parameters": [], "responses": { "200": { "description": "Data retrieved successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "clockDrift": { "type": "number" } } } } } } }, "deprecated": false } }, "/data/api/v1/systemPerformance/threads": { "get": { "tags": [ "system-performance" ], "summary": "Thread Execution Data", "description": "Return the current number of various types of threads running on the gateway.", "parameters": [], "responses": { "200": { "description": "Data retrieved successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "running": { "type": "integer" }, "waiting": { "type": "integer" }, "timedWaiting": { "type": "integer" }, "blocked": { "type": "integer" } } } } } } }, "deprecated": false } }, "/data/api/v1/trial": { "get": { "tags": [ "license-status" ], "summary": "Trial Information", "description": "Information on this Ignition Gateway's Trial Period. `trialState` will be one of [AllInDemo, SomeInDemo, NoneInDemo]", "parameters": [], "responses": { "200": { "description": "Trial information retrieved successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "licenseMode": { "type": "string", "enum": [ "Free", "Trial", "Activated", "Invalid" ], "x-ignition-non-secret": false }, "trialState": { "type": "string", "enum": [ "AllInDemo", "SomeInDemo", "NoneInDemo" ], "x-ignition-non-secret": false }, "trialSecondsLeft": { "type": "number", "x-ignition-non-secret": false }, "expired": { "type": "boolean", "x-ignition-non-secret": false }, "emergency": { "type": "boolean", "x-ignition-non-secret": false }, "emergencySecondsLeft": { "type": "number", "x-ignition-non-secret": false }, "development": { "type": "boolean", "x-ignition-non-secret": false }, "developmentSecondsLeft": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/config/journal/getRemoteJournalNames": { "get": { "parameters": [ { "name": "gatewayName", "in": "query", "description": "The name of the remote gateway to query for alarm journal names.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "testGatewayName" } } ], "responses": {}, "deprecated": false } }, "/data/eam/api/v1/agent-details/{serverid}": { "get": { "tags": [ "agent-management" ], "summary": "EAM Agent Details Overview", "description": "Gets the details of a specific EAM agent.", "parameters": [ { "name": "serverid", "in": "path", "description": "The server ID of the agent to fetch details for", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "403": { "description": "Agent info can only be retrieved from a controller." }, "200": { "description": "Agent info retrieved successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "edition": { "type": "string", "x-ignition-non-secret": false }, "version": { "type": "string", "x-ignition-non-secret": false }, "licenseKeys": { "type": "string", "x-ignition-non-secret": true }, "status": { "type": "string", "x-ignition-non-secret": false }, "group": { "type": "string", "x-ignition-non-secret": false }, "backupBytes": { "type": "number", "x-ignition-non-secret": false }, "lastCommTimestamp": { "type": "number", "x-ignition-non-secret": false }, "lastEvent": { "type": "string", "x-ignition-non-secret": false }, "lastEventDateTimestamp": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/eam/api/v1/agent-licenses/{serverid}": { "get": { "tags": [ "agent-management" ], "summary": "EAM Agent License Keys", "description": "Gets the license keys of a specific EAM agent.", "parameters": [ { "name": "serverid", "in": "path", "description": "The server ID of the agent to fetch license keys for", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "403": { "description": "Agent info can only be retrieved from a controller." }, "200": { "description": "Agent info retrieved successfully." } }, "deprecated": false } }, "/data/eam/api/v1/agent-management/modules": { "get": { "tags": [ "agent-management" ], "summary": "Retrieve agent modules", "description": "Retrieve module information from an agent. This includes module name, version, license status and module state.", "parameters": [ { "name": "serverid", "in": "query", "description": "An encoded ServerId, such as '_0:0:agentName'", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "_0:0:agent" } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "404": { "description": "The agent gateway or a resource on the gateway was not available" }, "200": { "description": "Module list returned successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "version": { "type": "string", "x-ignition-non-secret": false }, "description": { "type": "string", "x-ignition-non-secret": false }, "licenseStatus": { "type": "string", "x-ignition-non-secret": false }, "moduleStatus": { "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/eam/api/v1/agent-management/project-resources": { "get": { "tags": [ "agent-management" ], "summary": "Retrieve project resources", "description": "Retrieve project resource names from an agent or from the local controller. Set the serverid parameter to return projects from a remote gateway, or set the localsystem parameter to True to return projects from the local controller.", "parameters": [ { "name": "serverid", "in": "query", "description": "An encoded ServerId, such as '_0:0:agentName'", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "_0:0:agent" } }, { "name": "localsystem", "in": "query", "description": "Set to True to use the local system as the project source", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } }, { "name": "project", "in": "query", "description": "A project name", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "MyProject" } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "404": { "description": "The agent gateway or a resource on the gateway was not available" }, "200": { "description": "Project resources returned successfully", "content": { "application/json": { "schema": { "examples": [ { "resources": [ { "path": "ignition/global-props", "type": "global-props" }, { "path": "com.inductiveautomation.perspective/views/SharedView", "type": "views" }, { "path": "com.inductiveautomation.vision/windows/SharedWindow", "type": "windows" } ] } ] } } } } }, "deprecated": false } }, "/data/eam/api/v1/agent-management/projects": { "get": { "tags": [ "agent-management" ], "summary": "Retrieve projects names", "description": "Retrieve project names from an agent or from the local controller. Set the serverid parameter to return projects from a remote gateway, or set the localsystem parameter to True to return projects from the local controller.", "parameters": [ { "name": "serverid", "in": "query", "description": "An encoded ServerId, such as '_0:0:agentName'", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "_0:0:agent" } }, { "name": "localsystem", "in": "query", "description": "Set to True to use the local system as the project source", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "404": { "description": "The agent gateway or a resource on the gateway was not available" }, "200": { "description": "Project names returned successfully", "content": { "application/json": { "schema": { "examples": [ { "projects": [ { "name": "ChildProject", "description": "My first child project", "parent": "ParentProject" }, { "name": "ParentProject", "description": "My first inheritable (parent) project", "parent": "" } ] } ] } } } } }, "deprecated": false } }, "/data/eam/api/v1/agent-management/upgrade-info": { "get": { "tags": [ "agent-management" ], "summary": "Retrieve agent info for upgrade", "description": "Returns system data about an agent, used to prep a remote upgrade", "parameters": [ { "name": "serverids", "in": "query", "description": "A comma-separated list of encoded ServerIds", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "_0:0:agent1,_0:0:agent2" } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "200": { "description": "Agent system data returned successfully", "content": { "application/json": { "schema": { "examples": [ { "agent": { "serverid": "_0:0:agent", "platformVersion": "8.3.0", "redundantRole": "Independent", "arch": "Windows64", "supportsAlternateZipUrl": true, "result": "Success", "installedModules": [ { "moduleDesc": "Provides alarm notifications via email.", "moduleVersion": "6.1.20", "moduleName": "Alarm Notification", "moduleId": "com.inductiveautomation.alarm-notification", "moduleVendorName": "" } ] }, "agent2": { "serverid": "_0:0:agent2", "result": "Server not connected" } } ] } } } } }, "deprecated": false } }, "/data/eam/api/v1/agents": { "get": { "tags": [ "agent-management" ], "summary": "EAM Agents Status", "description": "Displays a list of EAM agents and their status. The list includes agents that are pending approval. This must be called from a controller.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "403": { "description": "Agent info can only be retrieved from a controller." }, "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "statusMessage": { "type": "string", "x-ignition-non-secret": false }, "groupName": { "type": "string", "x-ignition-non-secret": false }, "lastCommTimestamp": { "type": "number", "x-ignition-non-secret": false }, "lastEvent": { "type": "string", "x-ignition-non-secret": false }, "eventDateTimestamp": { "type": "number", "x-ignition-non-secret": false }, "usedGwbkBytes": { "type": "number", "x-ignition-non-secret": false }, "serverId": { "type": "string", "x-ignition-non-secret": false }, "resourceSignature": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/eam/api/v1/agents-by-group": { "get": { "tags": [ "agent-management" ], "summary": "EAM Agents by Agent Group", "description": "Gets the connected EAM agents, organized by group. This must be called from a controller.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "403": { "description": "Agent info can only be retrieved from a controller." }, "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "agents": { "type": "array", "items": { "type": "object", "properties": { "encodedServerId": { "type": "string", "x-ignition-non-secret": false }, "descriptiveServerId": { "type": "string", "x-ignition-non-secret": false } } }, "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/eam/api/v1/approve-agent/{serverid}": { "post": { "tags": [ "agent-management" ], "summary": "Approve agent", "description": "Approves an EAM agent, which will allow interaction with the controller.", "parameters": [ { "name": "serverid", "in": "path", "description": "An encoded ServerId, such as '_0:0:agentName'", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "Agent serverid was not specified or is not present in agent quarantine list." }, "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "204": { "description": "Agent was approved." } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/cancel/{name}": { "post": { "tags": [ "eam-tasks" ], "summary": "Cancel task", "description": "Cancels upcoming execution of a gateway task. The task configuration is maintained.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the task", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "204": { "description": "Task cancelled successfully." } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/clear-retry/{name}": { "delete": { "tags": [ "eam-tasks" ], "summary": "Clear retry task data", "description": "Removes retry data for a task, allowing the task to be forced to run again.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the task", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "404": { "description": "Task retry data not found." }, "204": { "description": "Forced task retry data cleared." } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/delete-temp-folder": { "delete": { "tags": [ "storage" ], "summary": "Delete temp folder", "description": "Deletes the folder containing the previously uploaded files for an EAM task", "parameters": [ { "name": "folderPath", "in": "query", "description": "The path to the temporary folder. This folder path is relative to the EAM system temp folder.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "folderPath": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6" } } } ], "responses": { "400": { "description": "Missing parameter: folderPath" }, "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "204": { "description": "Temporary folder deleted" } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/force/{owner}/{name}": { "post": { "tags": [ "eam-tasks" ], "summary": "Force task execution", "description": "Force a task to execute immediately.", "parameters": [ { "name": "owner", "in": "path", "description": "The system that owns the task", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "name", "in": "path", "description": "The name of the task", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "retry", "in": "query", "description": "Set to True to retry a failed task", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "boolean", "example": true } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "404": { "description": "Task not found." }, "204": { "description": "Forced task started successfully." } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/history": { "get": { "tags": [ "eam-tasks" ], "summary": "Task History", "description": "Returns a list of task execution results", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "200": { "description": "List of tasks.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "taskId": { "type": "string", "x-ignition-non-secret": false }, "taskName": { "type": "string", "x-ignition-non-secret": false }, "taskStart": { "type": "number", "x-ignition-non-secret": false }, "taskEnd": { "type": "number", "x-ignition-non-secret": false }, "target": { "type": "string", "x-ignition-non-secret": false }, "level": { "type": "string", "enum": [ "Success", "Warning", "Canceled", "Failed" ], "x-ignition-non-secret": false }, "detail": { "type": "string", "x-ignition-non-secret": false }, "taskType": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/module-cert": { "get": { "tags": [ "storage" ], "summary": "Retrieve module certificate", "description": "Retrieves module certificate information from an uploaded .modl file", "parameters": [ { "name": "filePath", "in": "query", "description": "The file path to the temporary .modl file", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "filePath": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/certificates.p7b" } } } ], "responses": { "400": { "description": "Missing parameter or error reading certificate file." }, "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "200": { "description": "Module certificate retrieved", "content": { "application/json": { "schema": { "examples": [ { "thumbprint": "1ac6a3849fb9aa609a319b79e4fa977e0388b8ce", "notValidBefore": "Dec 13, 2024, 4:12:53 PM", "notValidAfter": "Dec 13, 2029, 4:12:53 PM", "subjectName": "MyCertificate", "issuerName": "MyRootCA" } ] } } } } }, "deprecated": false }, "post": { "tags": [ "storage" ], "summary": "Accept module certificate", "description": "Adds a resource to the controller indicating that the user has accepted a module certificate.", "parameters": [ { "name": "filePath", "in": "query", "description": "The file path to the temporary certificate file extracted from the .modl file", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "filePath": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/certificates.p7b" } } } ], "responses": { "400": { "description": "Missing parameter or error reading certificate file." }, "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "204": { "description": "Module certificate stored" } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/module-eula": { "get": { "tags": [ "storage" ], "summary": "Retrieve module EULA", "description": "Retrieves a module EULA from an uploaded .modl file. The EULA is returned as HTML.", "parameters": [ { "name": "filePath", "in": "query", "description": "The file path to the temporary license.html file extracted from the .modl file", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "filePath": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/license.html" } } } ], "responses": { "400": { "description": "Missing parameter or error reading EULA file." }, "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "200": { "description": "Module EULA retrieved" } }, "deprecated": false }, "post": { "tags": [ "storage" ], "summary": "Accept module EULA", "description": "Adds a resource to the controller indicating that the user has accepted a module EULA.", "parameters": [ { "name": "filePath", "in": "query", "description": "The file path to the temporary license.html file extracted from the .modl file", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "filePath": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/license.html" } } }, { "name": "moduleId", "in": "query", "description": "The module id of the .modl file", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "moduleId": "com.inductiveautomation.perspective" } } } ], "responses": { "400": { "description": "Missing parameter or error reading EULA file." }, "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "204": { "description": "Module EULA resource added" } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/resume/{name}": { "post": { "tags": [ "eam-tasks" ], "summary": "Resume task", "description": "Resumes a suspended gateway task, allowing it to execute at the next scheduled time.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the task", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "204": { "description": "Task resumed successfully." } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/retry": { "get": { "tags": [ "eam-tasks" ], "summary": "Get retry tasks", "description": "Returns a list of tasks that have errored and can be retried", "parameters": [], "responses": { "200": { "description": "List of errored tasks.", "content": { "application/json": { "schema": { "type": "object", "properties": { "taskName": { "type": "string", "x-ignition-non-secret": false }, "resourceName": { "type": "string", "x-ignition-non-secret": false }, "attemptCount": { "type": "number", "x-ignition-non-secret": false }, "lastError": { "type": "string", "x-ignition-non-secret": false }, "failedServerIds": { "type": "array", "items": { "type": "string", "failedServerIds": "string" }, "x-ignition-non-secret": false }, "retryFolder": { "type": "string", "x-ignition-non-secret": false }, "scheduleMode": { "type": "string", "enum": [ "Immediate", "AtTime", "AtDelay", "Scheduled", "OnDemand" ], "x-ignition-non-secret": false }, "taskOwner": { "type": "string", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/scheduled/{running}": { "get": { "tags": [ "eam-tasks" ], "summary": "Running or Scheduled Tasks", "description": "Returns a list of running or scheduled tasks", "parameters": [ { "name": "running", "in": "path", "description": "Set to true to return only running tasks, or false to return scheduled tasks.", "required": false, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "boolean", "example": false } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "List of running or scheduled tasks.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "x-ignition-non-secret": false }, "owner": { "type": "string", "x-ignition-non-secret": false }, "type": { "type": "string", "x-ignition-non-secret": false }, "execStart": { "type": "number", "x-ignition-non-secret": false }, "message": { "type": "string", "x-ignition-non-secret": false }, "repeats": { "type": "boolean", "x-ignition-non-secret": false }, "canPause": { "type": "boolean", "x-ignition-non-secret": false }, "canResume": { "type": "boolean", "x-ignition-non-secret": false }, "canCancel": { "type": "boolean", "x-ignition-non-secret": false }, "taskState": { "type": "string", "x-ignition-non-secret": false }, "isForced": { "type": "boolean", "x-ignition-non-secret": false }, "isRunning": { "type": "boolean", "x-ignition-non-secret": false }, "progress": { "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/store-gwbk": { "post": { "tags": [ "storage" ], "summary": "Upload .gwbk file", "description": "Uploads a .gwbk for temporary storage on the controller. The returned gwbk path is relative to the EAM system temp folder.", "parameters": [], "requestBody": { "description": "The .gwbk file, sent in the request body as a binary stream", "required": true, "content": { "binary stream": {} } }, "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "200": { "description": "Module file uploaded successfully", "content": { "application/json": { "schema": { "examples": [ { "gwbkFile": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/restore.gwbk" } ] } } } } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/store-module": { "post": { "tags": [ "storage" ], "summary": "Upload .modl file", "description": "Uploads a .modl file for temporary storage on the controller. The returned modlFile path is relative to the EAM system temp folder.", "parameters": [ { "name": "filename", "in": "query", "description": "Used as the filename when the .modl is uploaded to the gateway's file system. The file is stored in a temporary folder.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "filename": "Perspective-module-signed.modl" } } } ], "requestBody": { "description": "The module .modl file, sent in the request body as a binary stream", "required": true, "content": { "binary stream": {} } }, "responses": { "400": { "description": "Missing parameter: fileName or error reading module file." }, "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "200": { "description": "Module file uploaded successfully", "content": { "application/json": { "schema": { "examples": [ { "modlFile": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/Perspective-signed.modl", "needsEulaAcceptance": true, "moduleEulaFile": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/license.html", "needsCertAcceptance": true, "moduleCertFile": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/certificates.p7b", "moduleInfo": { "id": "com.inductiveautomation.perspective", "name": "Perspective", "description": "A module that provides modern, responsive html based graphical interfaces for Ignition projects.", "version": "2.3.0.2024121110", "requiredIgnitionVersion": "8.3.0", "isFree": false, "isSelfSigned": false } } ] } } } } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/store-module-from-archive": { "post": { "tags": [ "storage" ], "summary": "Store module file from archive", "description": "Adds an archived module file to temporary storage on the controller. The returned modlFile path is relative to the EAM system temp folder.", "parameters": [ { "name": "filePath", "in": "query", "description": "The file path of the archived module file, as returned from the archived-modules endpoint. The file is stored in a temporary folder.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "filePath": "modules\\\\Perspective__2.3.0-SNAPSHOT__.modl" } } } ], "responses": { "400": { "description": "Missing parameter: filePath or error reading module file." }, "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "200": { "description": "Archived module file copied to temp directory successfully", "content": { "application/json": { "schema": { "examples": [ { "modlFile": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/Perspective-signed.modl", "needsEulaAcceptance": true, "moduleEulaFile": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/license.html", "needsCertAcceptance": true, "moduleCertFile": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/certificates.p7b", "moduleInfo": { "id": "com.inductiveautomation.perspective", "name": "Perspective", "description": "A module that provides modern, responsive html based graphical interfaces for Ignition projects.", "version": "2.3.0.2024121110", "requiredIgnitionVersion": "8.3.0", "isFree": false, "isSelfSigned": false } } ] } } } } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/store-upgrade-zip": { "post": { "tags": [ "storage" ], "summary": "Upload upgrade zip", "description": "Upload an Ignition upgrade.zip for temporary storage on the controller. The returned filePath holds the path to the upgrade.zip and is relative to the EAM system temp folder.", "parameters": [], "requestBody": { "description": "The upgrade.zip file, sent in the request body as a binary stream", "required": true, "content": { "binary stream": {} } }, "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "200": { "description": "Upgrade zip uploaded successfully", "content": { "application/json": { "schema": { "examples": [ { "filePath": "e5335833-2e9e-4bb5-b6d4-d446e3cf4cf6/upgrade.zip", "arch": "Linux64", "version": "8.3.0" } ] } } } } }, "deprecated": false } }, "/data/eam/api/v1/eam-tasks/suspend/{name}": { "post": { "tags": [ "eam-tasks" ], "summary": "Suspend task", "description": "Suspends a scheduled gateway task, preventing it from executing at the next scheduled time.", "parameters": [ { "name": "name", "in": "path", "description": "The name of the task", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "204": { "description": "Task suspended successfully." } }, "deprecated": false } }, "/data/eam/api/v1/quarantined-agents": { "get": { "tags": [ "agent-management" ], "summary": "Quarantined agents", "description": "Returns a list of encoded ServerIds of EAM agents waiting for approval.", "parameters": [], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "200": { "description": "Quarantined agents retrieved successfully.", "content": { "application/json": { "schema": { "type": "array", "examples": [ [ "_0:0:MyAgent" ] ] } } } } }, "deprecated": false } }, "/data/eam/api/v1/quarantined-agents/{serverid}": { "delete": { "tags": [ "agent-management" ], "summary": "Delete quarantined agent", "description": "Deletes a pending EAM agent from the agent quarantine.", "parameters": [ { "name": "serverid", "in": "path", "description": "The agent's encoded ServerId", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "_0:0:agent" } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "404": { "description": "Quarantined agent not found." }, "204": { "description": "Quarantined agent deleted successfully." } }, "deprecated": false } }, "/data/eam/api/v1/storage/archived-backups": { "get": { "tags": [ "storage" ], "summary": "Retrieve archived backups", "description": "Retrieves a list of gateway backups for the specified agents. Returned file paths are relative to the EAM archive folder.", "parameters": [ { "name": "serverids", "in": "query", "description": "A comma-separated list of encoded ServerIds", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": "_0:0:agent1,_0:0:agent2" } } ], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "200": { "description": "Archived backup list returned successfully", "content": { "application/json": { "schema": { "examples": [ [ { "name": "myagent-20241205_061832.gwbk", "filePath": "myagent/20241205_061832/backup.gwbk", "archiveDate": "20241205_061832", "modules": [ { "name": "com.test.mymodule", "version": "1.0.0" } ] } ] ] } } } } }, "deprecated": false } }, "/data/eam/api/v1/storage/archived-modules": { "get": { "tags": [ "storage" ], "summary": "Retrieve archived modules", "description": "Retrieves a list of modules archived on the EAM controller. Returned module file paths are relative to the EAM archive folder.", "parameters": [], "responses": { "403": { "description": "This operation can only be performed when EAM is configured as a controller." }, "200": { "description": "Archived module list returned successfully", "content": { "application/json": { "schema": { "examples": [ [ { "name": "Perspective", "filePath": "modules/Perspective__2.1.33__.modl", "version": "2.1.33" } ] ] } } } } }, "deprecated": false } }, "/data/eam/api/v1/upgrade-agent/{groupName}/{serverid}": { "post": { "tags": [ "agent-management" ], "summary": "Upgrade Agent", "description": "Upgrade the specified EAM agent", "parameters": [ { "name": "groupName", "in": "path", "description": "The name of the group the agent belongs to", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "serverid", "in": "path", "description": "The server ID of the agent to upgrade", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "403": { "description": "Upgrades can only be invoked from a controller." }, "404": { "description": "No matching Agent found in group." }, "503": { "description": "Upgrade Service not available for Agent." }, "200": { "description": "Agent upgrade initiated.", "content": { "application/json": { "schema": { "properties": { "message": { "type": "string" } } } } } } }, "deprecated": false } }, "/data/event-stream/api/v1/streams/details/{project}": { "get": { "tags": [ "streams-info" ], "summary": "Get event stream details", "description": "Fetches detailed diagnostics and metrics for a given event stream in a project.", "parameters": [ { "name": "project", "in": "path", "description": "The project name", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "400": { "description": "Project name is required" }, "502": { "description": "Event Stream module not found" }, "200": { "description": "Event Stream details returned successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "project": { "type": "string", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false }, "state": { "type": "string", "x-ignition-non-secret": false }, "stageDiagnostics": { "type": "object", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/event-stream/api/v1/streams/status": { "get": { "tags": [ "streams-info" ], "summary": "Get general event stream status", "description": "Get general status of all event streams", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "502": { "description": "Event Stream module not found" }, "200": { "description": "Event Stream status info returned successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "project": { "type": "string", "x-ignition-non-secret": false }, "totalCount": { "type": "number", "x-ignition-non-secret": false }, "eventsPerSecond": { "type": "number", "x-ignition-non-secret": false }, "faultedCount": { "type": "number", "x-ignition-non-secret": false }, "disabledCount": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/fsql/api/v1/status/project/{name}": { "get": { "tags": [ "groups-info" ], "summary": "Get transaction groups status for a specific project", "description": "Get the status of all transaction groups for a specific project, including longest running groups, path of running, non-running and errored groups and tag/DB metrics", "parameters": [ { "name": "name", "in": "path", "description": "The name of the project to check transaction groups.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "404": { "description": "The requested project does not exist." }, "200": { "description": "Transaction groups info returned successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "projectDetail": { "properties": { "running": { "type": "array", "items": { "properties": { "path": { "type": "string" }, "project": { "type": "string" }, "state": { "type": "string" } } } }, "nonRunning": { "type": "array", "items": { "properties": { "path": { "type": "string" }, "project": { "type": "string" }, "state": { "type": "string" } } } }, "tagThroughput": { "type": "number" }, "longestRunningGroups": { "type": "array", "items": { "properties": { "path": { "type": "string" }, "duration": { "type": "number" } } } }, "projectName": { "type": "string" }, "dbThroughput": { "type": "number" }, "errored": { "type": "array", "items": { "properties": { "path": { "type": "string" }, "project": { "type": "string" }, "state": { "type": "string" }, "error": { "type": "string" } } } } } } } } } } } }, "deprecated": false } }, "/data/fsql/api/v1/status/projects": { "get": { "tags": [ "groups-info" ], "summary": "Get transaction group status for each project", "description": "Get the status of all transaction groups for each project, including the number of running, non-running and errored groups and tag/DB metrics", "parameters": [], "responses": { "200": { "description": "Transaction group info returned successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "projects": { "properties": { "running": { "type": "integer" }, "nonRunning": { "type": "integer" }, "tagThroughput": { "type": "number" }, "projectName": { "type": "string" }, "dbThroughput": { "type": "number" }, "errored": { "type": "integer" } } } } } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/client/pki/certificate/trust": { "post": { "tags": [ "client-pki-certificate-management" ], "summary": "Trust Endpoint Certificate", "description": "Trust the certificate for the given endpoint.", "parameters": [], "requestBody": { "description": "A JSON object containing the certificate.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "certificate": { "type": "string", "x-ignition-non-secret": false } } } } } }, "responses": { "400": { "description": "Missing required request body." }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean" } } } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/client/pki/certificates/rejected": { "get": { "tags": [ "client-pki-certificate-management" ], "summary": "Get Rejected Client Certificates", "description": "A list of all rejected client certificates.", "parameters": [], "responses": { "500": { "description": "Error retrieving certificates." }, "200": { "description": "Successfully retrieved rejected certificate.", "content": { "application/json": { "schema": { "type": "array", "items": { "properties": { "commonName": { "type": "string" }, "issuer": { "type": "object", "properties": { "cn": { "type": "string" }, "o": { "type": "string" }, "ou": { "type": "string" }, "l": { "type": "string" }, "st": { "type": "string" }, "c": { "type": "string" } } }, "subject": { "type": "object", "properties": { "cn": { "type": "string" }, "o": { "type": "string" }, "ou": { "type": "string" }, "l": { "type": "string" }, "st": { "type": "string" }, "c": { "type": "string" } } }, "signature": { "type": "string" }, "expiration": { "type": "string" } } } } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/client/pki/certificates/rejected/{signature}": { "get": { "tags": [ "client-pki-certificate-management" ], "summary": "Download Rejected Client Certificate", "description": "Download a rejected client certificate with the given signature.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the rejected client certificate to download.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "abc123xyz456" } } ], "responses": { "500": { "description": "Error downloading certificate." }, "404": { "description": "Certificate not found." }, "200": { "description": "Successfully downloaded rejected certificate.", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } } }, "deprecated": false }, "delete": { "tags": [ "client-pki-certificate-management" ], "summary": "Delete Rejected Client Certificate", "description": "Delete a rejected client certificate with the given signature.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the rejected client certificate to delete.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "abc123xyz456" } } ], "responses": { "500": { "description": "Error deleting certificate." }, "404": { "description": "Certificate not found." }, "200": { "description": "Request sent successfully.", "content": { "application/json": { "schema": { "description": "Whether the certificate was successfully deleted.", "type": "boolean" } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/client/pki/certificates/trusted": { "get": { "tags": [ "client-pki-certificate-management" ], "summary": "Get Trusted Client Certificates", "description": "A list of all trusted client certificates.", "parameters": [], "responses": { "500": { "description": "Error retrieving certificates." }, "200": { "description": "Successfully retrieved trusted certificate.", "content": { "application/json": { "schema": { "type": "array", "items": { "properties": { "commonName": { "type": "string" }, "issuer": { "type": "object", "properties": { "cn": { "type": "string" }, "o": { "type": "string" }, "ou": { "type": "string" }, "l": { "type": "string" }, "st": { "type": "string" }, "c": { "type": "string" } } }, "subject": { "type": "object", "properties": { "cn": { "type": "string" }, "o": { "type": "string" }, "ou": { "type": "string" }, "l": { "type": "string" }, "st": { "type": "string" }, "c": { "type": "string" } } }, "signature": { "type": "string" }, "expiration": { "type": "string" } } } } } } } }, "deprecated": false }, "post": { "tags": [ "client-pki-certificate-management" ], "summary": "Upload Trusted Client Certificates", "description": "Upload a trusted client certificate.", "parameters": [], "requestBody": { "description": "A byte stream containing a trusted client certificate.", "required": true, "content": { "application/octet-stream": {} } }, "responses": { "500": { "description": "Error uploading certificate." }, "200": { "description": "Certificate upload request succeeded.", "content": { "application/json": { "schema": { "type": "boolean", "description": "Whether the certificate was successfully added to the trust manager." } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/client/pki/certificates/trusted/{signature}": { "get": { "tags": [ "client-pki-certificate-management" ], "summary": "Download Trusted Client Certificate", "description": "Download a trusted client certificate with the given signature.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the trusted client certificate to download.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "abc123xyz456" } } ], "responses": { "500": { "description": "Error downloading certificate." }, "404": { "description": "Certificate not found." }, "200": { "description": "Successfully downloaded trusted certificate.", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } } }, "deprecated": false }, "post": { "tags": [ "client-pki-certificate-management" ], "summary": "Trust Rejected Client Certificate", "description": "Trust a previously rejected client certificate with the given signature.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the rejected client certificate to trust.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "abc123xyz456" } } ], "responses": { "500": { "description": "Error trusting certificate." }, "404": { "description": "Certificate not found." }, "200": { "description": "Request sent successfully.", "content": { "application/json": { "schema": { "description": "Whether the certificate was successfully trusted.", "type": "boolean" } } } } }, "deprecated": false }, "delete": { "tags": [ "client-pki-certificate-management" ], "summary": "Delete Trusted Client Certificate", "description": "Delete a trusted client certificate with the given signature.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the trusted client certificate to delete.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "abc123xyz456" } } ], "responses": { "500": { "description": "Error deleting certificate." }, "404": { "description": "Certificate not found." }, "200": { "description": "Request sent successfully.", "content": { "application/json": { "schema": { "description": "Whether the certificate was successfully deleted.", "type": "boolean" } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/server/pki/certificates/rejected": { "get": { "tags": [ "server-pki-certificate-management" ], "summary": "Get Rejected Server Certificates", "description": "A list of all rejected server certificates.", "parameters": [], "responses": { "500": { "description": "Error retrieving certificates." }, "200": { "description": "Successfully retrieved rejected certificate.", "content": { "application/json": { "schema": { "type": "array", "items": { "properties": { "commonName": { "type": "string" }, "issuer": { "type": "object", "properties": { "cn": { "type": "string" }, "o": { "type": "string" }, "ou": { "type": "string" }, "l": { "type": "string" }, "st": { "type": "string" }, "c": { "type": "string" } } }, "subject": { "type": "object", "properties": { "cn": { "type": "string" }, "o": { "type": "string" }, "ou": { "type": "string" }, "l": { "type": "string" }, "st": { "type": "string" }, "c": { "type": "string" } } }, "signature": { "type": "string" }, "expiration": { "type": "string" } } } } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/server/pki/certificates/rejected/{signature}": { "get": { "tags": [ "server-pki-certificate-management" ], "summary": "Download Rejected Server Certificate", "description": "Download a rejected server certificate with the given signature.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the rejected server certificate to download.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "abc123xyz456" } } ], "responses": { "500": { "description": "Error downloading certificate." }, "404": { "description": "Certificate not found." }, "200": { "description": "Successfully downloaded rejected certificate.", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } } }, "deprecated": false }, "delete": { "tags": [ "server-pki-certificate-management" ], "summary": "Delete Rejected Server Certificate", "description": "Delete a rejected server certificate with the given signature.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the rejected server certificate to delete.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "abc123xyz456" } } ], "responses": { "500": { "description": "Error deleting certificate." }, "404": { "description": "Certificate not found." }, "200": { "description": "Request sent successfully.", "content": { "application/json": { "schema": { "description": "Whether the certificate was successfully deleted.", "type": "boolean" } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/server/pki/certificates/trusted": { "get": { "tags": [ "server-pki-certificate-management" ], "summary": "Get Trusted Server Certificates", "description": "A list of all trusted server certificates.", "parameters": [], "responses": { "500": { "description": "Error retrieving certificates." }, "200": { "description": "Successfully retrieved trusted certificate.", "content": { "application/json": { "schema": { "type": "array", "items": { "properties": { "commonName": { "type": "string" }, "issuer": { "type": "object", "properties": { "cn": { "type": "string" }, "o": { "type": "string" }, "ou": { "type": "string" }, "l": { "type": "string" }, "st": { "type": "string" }, "c": { "type": "string" } } }, "subject": { "type": "object", "properties": { "cn": { "type": "string" }, "o": { "type": "string" }, "ou": { "type": "string" }, "l": { "type": "string" }, "st": { "type": "string" }, "c": { "type": "string" } } }, "signature": { "type": "string" }, "expiration": { "type": "string" } } } } } } } }, "deprecated": false }, "post": { "tags": [ "server-pki-certificate-management" ], "summary": "Upload Trusted Server Certificates", "description": "Upload a trusted server certificate.", "parameters": [], "requestBody": { "description": "A byte stream containing a trusted client certificate.", "required": true, "content": { "application/octet-stream": {} } }, "responses": { "500": { "description": "Error uploading certificate." }, "200": { "description": "Certificate upload request succeeded.", "content": { "application/json": { "schema": { "type": "boolean", "description": "Whether the certificate was successfully added to the trust manager." } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/server/pki/certificates/trusted/{signature}": { "get": { "tags": [ "server-pki-certificate-management" ], "summary": "Download Trusted Server Certificate", "description": "Download a trusted server certificate with the given signature.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the trusted server certificate to download.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "abc123xyz456" } } ], "responses": { "500": { "description": "Error downloading certificate." }, "404": { "description": "Certificate not found." }, "200": { "description": "Successfully downloaded trusted certificate.", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } } }, "deprecated": false }, "post": { "tags": [ "server-pki-certificate-management" ], "summary": "Trust Rejected Server Certificate", "description": "Trust a previously rejected server certificate with the given signature.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the rejected server certificate to trust.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "abc123xyz456" } } ], "responses": { "500": { "description": "Error trusting certificate." }, "404": { "description": "Certificate not found." }, "200": { "description": "Request sent successfully.", "content": { "application/json": { "schema": { "description": "Whether the certificate was successfully trusted.", "type": "boolean" } } } } }, "deprecated": false }, "delete": { "tags": [ "server-pki-certificate-management" ], "summary": "Delete Trusted Server Certificate", "description": "Delete a trusted server certificate with the given signature.", "parameters": [ { "name": "signature", "in": "path", "description": "The signature of the trusted server certificate to delete.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "abc123xyz456" } } ], "responses": { "500": { "description": "Error deleting certificate." }, "404": { "description": "Certificate not found." }, "200": { "description": "Request sent successfully.", "content": { "application/json": { "schema": { "description": "Whether the certificate was successfully deleted.", "type": "boolean" } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/{routeType}/certificate": { "get": { "tags": [ "certificate-management" ], "summary": "Get Certificate", "description": "Get the server or client certificate for the Ignition OPC-UA Module", "parameters": [ { "name": "routeType", "in": "path", "description": "The type of certificate to view. Options are 'server' or 'client'.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "server" } } ], "responses": { "500": { "description": "Error retrieving certificate." }, "200": { "description": "Successfully retrieved certificate.", "content": { "application/json": { "schema": { "properties": { "commonName": { "type": "string" }, "issuer": { "type": "object", "properties": { "cn": { "type": "string" }, "o": { "type": "string" }, "ou": { "type": "string" }, "l": { "type": "string" }, "st": { "type": "string" }, "c": { "type": "string" } } }, "subject": { "type": "object", "properties": { "cn": { "type": "string" }, "o": { "type": "string" }, "ou": { "type": "string" }, "l": { "type": "string" }, "st": { "type": "string" }, "c": { "type": "string" } } }, "signature": { "type": "string" }, "expiration": { "type": "string" } } } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/{routeType}/certificate/download": { "get": { "tags": [ "certificate-management" ], "summary": "Download Certificate", "description": "Download Certificate for the given type.", "parameters": [ { "name": "routeType", "in": "path", "description": "The type of certificate to download. Options are 'server' or 'client'.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "server" } } ], "responses": { "200": { "description": "Successfully download certificate.", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } } }, "deprecated": false } }, "/data/opc-ua/api/v1/{routeType}/certificate/regenerate": { "post": { "tags": [ "certificate-management" ], "summary": "Regenerate Certificate", "description": "Regenerate a certificate of the given type.", "parameters": [ { "name": "routeType", "in": "path", "description": "The type of certificate to regenerate. Options are 'server' or 'client'.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string", "example": "server" } } ], "requestBody": { "description": "Request body containing details about the certificate to regenerate.", "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "validPeriodDays": { "description": "The number of days the regenerated certificate will be valid for.", "type": "number", "x-ignition-non-secret": false } } } } } }, "responses": { "400": { "description": "Missing required parameter." }, "500": { "description": "Error while regenerating certificate." }, "200": { "description": "Successfully regenerated certificate." } }, "deprecated": false } }, "/data/perspective/api/v1/session/{sessionId}": { "get": { "tags": [ "perspective-sessions" ], "summary": "Perspective Session Detail", "description": "Returns the details about a single session.", "parameters": [ { "name": "sessionId", "in": "path", "description": "ID of the session to return", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "404": { "description": "The session ID does not exist" }, "200": { "description": "Success.", "content": { "application/json": { "schema": { "description": "Details about a perspective session", "type": "object", "properties": { "userAgent": { "type": "string" }, "id": { "type": "string" }, "username": { "type": "string" }, "authorized": { "type": "boolean" }, "project": { "type": "string" }, "clientAddress": { "type": "string" }, "lastComm": { "type": "number" }, "sessionScope": { "type": "string" }, "activePages": { "type": "number" }, "recentBytesSent": { "type": "number" }, "totalBytesSent": { "type": "number" }, "pageIds": { "type": "array", "items": { "type": "string" } }, "metrics": { "type": "object", "additionalProperties": { "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } } } } }, "deprecated": false } }, "/data/perspective/api/v1/session/{sessionId}/page/{pageId}/views": { "get": { "tags": [ "perspective-sessions" ], "summary": "Perspective Views", "description": "Retrieves a list of all views active on a single page of a single session.", "parameters": [ { "name": "sessionId", "in": "path", "description": "ID of the session", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "pageId", "in": "path", "description": "ID of the page", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "404": { "description": "The session ID or page ID does not exist" }, "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "x-ignition-non-secret": false }, "resourcePath": { "type": "string", "x-ignition-non-secret": false }, "mountPath": { "type": "string", "x-ignition-non-secret": false }, "componentCount": { "type": "number", "x-ignition-non-secret": false }, "bindingCount": { "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/perspective/api/v1/session/{sessionId}/pages": { "get": { "tags": [ "perspective-sessions" ], "summary": "Perspective Pages", "description": "Retrieves a list of all pages in a session.", "parameters": [ { "name": "sessionId", "in": "path", "description": "ID of the session", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "404": { "description": "The session ID does not exist" }, "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "x-ignition-non-secret": false }, "created": { "type": "number", "x-ignition-non-secret": false }, "lastKeepalive": { "type": "number", "x-ignition-non-secret": false }, "roundtrip": { "type": "number", "x-ignition-non-secret": false }, "connectCount": { "type": "number", "x-ignition-non-secret": false }, "viewCount": { "type": "number", "x-ignition-non-secret": false }, "componentCount": { "type": "number", "x-ignition-non-secret": false }, "bindingCount": { "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/perspective/api/v1/sessions": { "delete": { "tags": [ "perspective-sessions" ], "summary": "Terminate Perspective Session(s)", "description": "Terminates one or more perspective sessions.", "parameters": [ { "name": "sessionId", "in": "query", "description": "ID of the session to terminate", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "message", "in": "query", "description": "Message to send to the client", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The request was malformed." }, "404": { "description": "No valid sessions found to close." }, "200": { "description": "Success. Returns the number of sessions terminated.", "content": { "application/json": { "schema": { "type": "object", "properties": { "terminated": { "type": "number" } } } } } } }, "deprecated": false } }, "/data/perspective/api/v1/sessions/": { "get": { "tags": [ "perspective-sessions" ], "summary": "Perspective Sessions", "description": "Retrieves a list of all active perspective sessions.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "description": "Details about a perspective session", "type": "object", "properties": { "userAgent": { "type": "string" }, "id": { "type": "string" }, "username": { "type": "string" }, "authorized": { "type": "boolean" }, "project": { "type": "string" }, "clientAddress": { "type": "string" }, "lastComm": { "type": "number" }, "sessionScope": { "type": "string" }, "activePages": { "type": "number" }, "recentBytesSent": { "type": "number" }, "totalBytesSent": { "type": "number" }, "pageIds": { "type": "array", "items": { "type": "string" } } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/reporting/api/v1/cancel/{project}": { "delete": { "tags": [ "reports-info" ], "summary": "Cancel A Report", "description": "Cancel the report with the given name on the given project.", "parameters": [ { "name": "project", "in": "path", "description": "The name of the project that the report belongs to.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } }, { "name": "path", "in": "query", "description": "The path of the report to cancel.", "required": true, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "example": { "path": "path/to/report" } } } ], "responses": { "400": { "description": "Project and/or report path were not specified" }, "200": { "description": "Report successfully canceled", "content": { "application/json": { "schema": { "type": "object", "properties": { "canceled": { "type": "string", "description": "The UUID of the cancelled report." } } } } } }, "409": { "description": "Currently executing report not found" } }, "deprecated": false } }, "/data/reporting/api/v1/reports/completed": { "get": { "tags": [ "reports-info" ], "summary": "Completed Reports", "description": "Information on reports that have been completed.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "projectName": { "description": "The name of the project where the report resides.", "type": "string", "x-ignition-non-secret": false }, "path": { "description": "The reports path within it's project.", "type": "string", "x-ignition-non-secret": false }, "reportName": { "description": "The name of the report, if available. May be empty.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Descriptive text for the report. Possible status or action types. May be empty.", "type": "string", "x-ignition-non-secret": false }, "start": { "description": "The time the report was executed, UNIX epoch milliseconds. May be empty.", "type": "number", "x-ignition-non-secret": false }, "elapsedMs": { "description": "The duration of the reports last execution in milliseconds. May be empty.", "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/reporting/api/v1/reports/current": { "get": { "tags": [ "reports-info" ], "summary": "Currently Executing Reports", "description": "Information on reports that are currently running.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "projectName": { "description": "The name of the project where the report resides.", "type": "string", "x-ignition-non-secret": false }, "path": { "description": "The reports path within it's project.", "type": "string", "x-ignition-non-secret": false }, "reportName": { "description": "The name of the report, if available. May be empty.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Descriptive text for the report. Possible status or action types. May be empty.", "type": "string", "x-ignition-non-secret": false }, "start": { "description": "The time the report was executed, UNIX epoch milliseconds. May be empty.", "type": "number", "x-ignition-non-secret": false }, "elapsedMs": { "description": "The duration of the reports last execution in milliseconds. May be empty.", "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/reporting/api/v1/reports/published": { "get": { "tags": [ "reports-info" ], "summary": "Published Reports", "description": "Information on reports that are published on this Ignition Gateway.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "projectName": { "description": "The name of the project where the report resides.", "type": "string", "x-ignition-non-secret": false }, "path": { "description": "The reports path within it's project.", "type": "string", "x-ignition-non-secret": false }, "reportName": { "description": "The name of the report, if available. May be empty.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Descriptive text for the report. Possible status or action types. May be empty.", "type": "string", "x-ignition-non-secret": false }, "start": { "description": "The time the report was executed, UNIX epoch milliseconds. May be empty.", "type": "number", "x-ignition-non-secret": false }, "elapsedMs": { "description": "The duration of the reports last execution in milliseconds. May be empty.", "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/reporting/api/v1/reports/totals": { "get": { "tags": [ "reports-info" ], "summary": "Report Totals", "description": "Aggregate information on the reports on this Ignition Gateway. Includes totals for currently executing, completed, and upcoming scheduled reports.", "parameters": [], "responses": { "200": { "description": "Reports info returned successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "currentlyExecuting": { "description": "The number of currently executing reports.", "type": "number", "x-ignition-non-secret": false }, "completedScheduledExecutions": { "description": "The number of completed reports.", "type": "number", "x-ignition-non-secret": false }, "upcomingScheduledExecutions": { "description": "The number of upcoming scheduled reports.", "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false } }, "/data/reporting/api/v1/reports/upcoming": { "get": { "tags": [ "reports-info" ], "summary": "Upcoming Reports", "description": "Information on reports that are scheduled to be run.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "projectName": { "description": "The name of the project where the report resides.", "type": "string", "x-ignition-non-secret": false }, "path": { "description": "The reports path within it's project.", "type": "string", "x-ignition-non-secret": false }, "reportName": { "description": "The name of the report, if available. May be empty.", "type": "string", "x-ignition-non-secret": false }, "description": { "description": "Descriptive text for the report. Possible status or action types. May be empty.", "type": "string", "x-ignition-non-secret": false }, "start": { "description": "The time the report was executed, UNIX epoch milliseconds. May be empty.", "type": "number", "x-ignition-non-secret": false }, "elapsedMs": { "description": "The duration of the reports last execution in milliseconds. May be empty.", "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/sfc/api/v1/charts/status": { "get": { "tags": [ "charts-info" ], "summary": "Get general chart status", "description": "Get the status of all charts in the system", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "project": { "type": "string", "x-ignition-non-secret": false }, "path": { "type": "string", "x-ignition-non-secret": false }, "count": { "type": "number", "x-ignition-non-secret": false }, "executionMode": { "type": "string", "enum": [ "Callable", "RunAlways", "Disabled" ], "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/sfc/api/v1/charts/totals": { "get": { "tags": [ "charts-info" ], "summary": "Get chart totals", "description": "Get the number of defined and running charts", "parameters": [], "responses": { "200": { "description": "SFC Chart totals returned successfully", "content": { "application/json": { "schema": { "properties": { "definedCount": { "type": "number", "description": "The number of defined charts" }, "runningCount": { "type": "number", "description": "The number of running charts" } } } } } } }, "deprecated": false } }, "/data/sfc/api/v1/charts/{projectName}/{chartPath}": { "get": { "tags": [ "charts-info" ], "summary": "Get chart detail", "description": "Get the detail of a specific chart", "parameters": [ { "name": "projectName", "in": "path", "description": "n/a", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false }, { "name": "chartPath", "in": "path", "description": "n/a", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false }, { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "startDate": { "type": "string", "format": "date-time", "x-ignition-non-secret": false }, "startedBy": { "type": "string", "x-ignition-non-secret": false }, "chartState": { "type": "string", "enum": [ "Aborted", "Aborting", "Canceled", "Canceling", "Initial", "InitPaused", "Paused", "Pausing", "Resuming", "Running", "Starting", "Stopped", "Stopping", "Suspended", "RedundantInactive" ], "x-ignition-non-secret": false }, "canCancel": { "type": "boolean", "x-ignition-non-secret": false }, "canPause": { "type": "boolean", "x-ignition-non-secret": false }, "canResume": { "type": "boolean", "x-ignition-non-secret": false }, "parent": { "type": "string", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } } } } } } } }, "deprecated": false } }, "/data/sfc/api/v1/charts/{uuid}/cancel": { "delete": { "tags": [ "charts-info" ], "summary": "Cancel chart", "description": "Cancel a specific chart by UUID", "parameters": [ { "name": "uuid", "in": "path", "description": "The chart instance UUID", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The specified chart uuid is invalid" }, "404": { "description": "The specified chart uuid was not found" }, "200": { "description": "The chart was cancelled successfully" } }, "deprecated": false } }, "/data/sfc/api/v1/charts/{uuid}/pause": { "post": { "tags": [ "charts-info" ], "summary": "Pause chart", "description": "Pause a specific chart by UUID", "parameters": [ { "name": "uuid", "in": "path", "description": "The chart instance UUID", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The specified chart uuid is invalid" }, "404": { "description": "The specified chart uuid was not found" }, "200": { "description": "The chart was paused successfully" } }, "deprecated": false } }, "/data/sfc/api/v1/charts/{uuid}/resume": { "post": { "tags": [ "charts-info" ], "summary": "Resume chart", "description": "Resume a specific chart by UUID", "parameters": [ { "name": "uuid", "in": "path", "description": "The chart instance UUID", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "400": { "description": "The specified chart uuid is invalid" }, "404": { "description": "The specified chart uuid was not found" }, "200": { "description": "The chart was resumed successfully" } }, "deprecated": false } }, "/data/vision/api/v1/client/{id}": { "get": { "tags": [ "vision-sessions" ], "summary": "Session Details", "description": "Details of a specific client session.", "parameters": [ { "name": "id", "in": "path", "description": "The session ID.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Session details", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "x-ignition-non-secret": false }, "user": { "type": "string", "x-ignition-non-secret": false }, "uptime": { "type": "number", "x-ignition-non-secret": false }, "lastcomm": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "memory": { "type": "object", "properties": { "used": { "type": "number", "x-ignition-non-secret": false }, "max": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "project": { "type": "string", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "timezone": { "type": "string", "x-ignition-non-secret": false }, "tagCount": { "type": "number", "x-ignition-non-secret": false } } } } } } }, "deprecated": false }, "delete": { "tags": [ "vision-sessions" ], "summary": "Terminate Session", "description": "Terminate a specific client session.", "parameters": [ { "name": "id", "in": "path", "description": "The public ID of the session.", "required": true, "deprecated": false, "style": "simple", "explode": false, "allowReserved": false, "schema": { "type": "string" } } ], "responses": { "401": { "description": "The user is not authorized to terminate the session." }, "404": { "description": "The Vision client session was not found" }, "200": { "description": "Session terminated", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" } } } } } } }, "deprecated": false } }, "/data/vision/api/v1/clients": { "get": { "tags": [ "vision-sessions" ], "summary": "Client Sessions", "description": "Lists active client sessions.", "parameters": [ { "name": "limit", "in": "query", "description": "The maximum number of items to return.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 25 ] } }, { "name": "offset", "in": "query", "description": "The number of items to skip before returning results.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "examples": [ 50 ] } }, { "name": "sortBy", "in": "query", "description": "The name of a field to sort by. Use `asc(fieldName)` or `desc(fieldName)`\nto specify the sort direction as ascending or descending, respectively.\n", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "asc(field1)" ] } }, { "name": "search", "in": "query", "description": "A search string to filter items by. Terms separated by whitespace.", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "string", "examples": [ "word" ] } }, { "name": "filter", "in": "query", "description": "Filter items by field name, using format like `fieldName[op]=value` where `op` is one of: `eq` (equals), `ne` (not equals), `cn` (contains), `sw` (starts with), `ew` (ends with), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal), `rgx` (regular expression).", "required": false, "deprecated": false, "style": "form", "explode": true, "allowReserved": true, "schema": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_]+\\[(eq|ne|cn|sw|ew|gt|gte|lt|lte|rgx)\\]$" }, "additionalProperties": { "oneOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "examples": [ { "field1[eq]": "value", "field2[cn]": "word", "field3[gt]": 42 } ] } } ], "responses": { "200": { "description": "Success. Returns a list of items and related metadata.", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "x-ignition-non-secret": false }, "user": { "type": "string", "x-ignition-non-secret": false }, "uptime": { "type": "number", "x-ignition-non-secret": false }, "lastcomm": { "type": "number", "x-ignition-non-secret": false }, "timeout": { "type": "number", "x-ignition-non-secret": false }, "memory": { "type": "object", "properties": { "used": { "type": "number", "x-ignition-non-secret": false }, "max": { "type": "number", "x-ignition-non-secret": false } }, "x-ignition-non-secret": false }, "project": { "type": "string", "x-ignition-non-secret": false }, "address": { "type": "string", "x-ignition-non-secret": false }, "timezone": { "type": "string", "x-ignition-non-secret": false }, "tagCount": { "type": "number", "x-ignition-non-secret": false } } } }, "metadata": { "type": "object", "properties": { "total": { "type": "number", "description": "The total number of items available" }, "matching": { "type": "number", "description": "The number of items matching the filter and/or search criteria" }, "limit": { "type": "number", "description": "The maximum number of items to return, as specified in the query parameter" }, "offset": { "type": "number", "description": "The number of items to skip before starting to return items, as specified in the query parameter" } } }, "metrics": { "type": "object", "additionalProperties": { "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } } } } } } } }, "deprecated": false } } }, "components": { "schemas": { "TimerMetric": { "properties": { "oneMinuteRate": { "type": "number" }, "fiveMinuteRate": { "type": "number" }, "fifteenMinuteRate": { "type": "number" }, "count": { "type": "number" }, "meanRate": { "type": "number" }, "type": { "type": "string", "const": "timer" }, "histogram": { "properties": { "max": { "type": "number" }, "min": { "type": "number" }, "p50": { "type": "number" }, "p75": { "type": "number" }, "p95": { "type": "number" }, "p98": { "type": "number" }, "p99": { "type": "number" }, "mean": { "type": "number" }, "bucketSize": { "type": "number" }, "buckets": { "type": "array", "items": { "type": "number" } }, "type": { "type": "string", "const": "histogram" }, "stdev": { "type": "number" } }, "required": [ "max", "min", "p50", "p75", "p95", "p98", "p99", "mean", "bucketSize", "buckets", "type", "stdev" ] }, "description": { "type": "string" }, "units": { "type": "string" } }, "required": [ "oneMinuteRate", "fiveMinuteRate", "fifteenMinuteRate", "count", "meanRate", "type", "histogram" ] }, "SecurityLevelRuleNode": { "type": "object", "properties": { "name": { "type": "string", "title": "Name", "description": "The name of the security level to be granted by the rule at this node" }, "rule": { "oneOf": [ { "type": "object", "title": "expression", "properties": { "type": { "type": "string", "title": "Type", "description": "The type ID for the security level rule.", "const": "expression" }, "config": { "type": "object", "properties": { "source": { "type": "string", "title": "Source", "description": "The expression source code" } }, "required": [ "source" ], "title": "Config", "description": "The configuration settings for the security level rule." } }, "required": [ "type", "config" ] } ], "type": "object", "title": "Rule", "description": "Configuration settings for the rule which grants access to this security level. If not set, this rule may only be granted if the rule of a child has granted access to a child security level." }, "children": { "type": "array", "title": "Children", "description": "Configuration settings for each child of this security level rule node", "items": { "$ref": "#/components/schemas/SecurityLevelRuleNode" } } }, "required": [ "name", "children" ] }, "Entity": { "type": "object", "properties": { "path": { "type": "string", "description": "Full path to the entity" }, "name": { "type": "string", "description": "The name of the entity" }, "description": { "type": "object", "description": "Description information about the entity", "properties": { "description": { "type": "string", "description": "A descriptive doc string" }, "iconUrl": { "type": "string", "description": "A URL to an icon" }, "details": { "type": "object", "description": "Additional properties" } } }, "diagnostics": { "type": "object", "description": "Diagnostic information about this entity", "properties": { "metrics": { "type": "object", "description": "Diagnostic metrics", "additionalProperties": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the metric (if registered)" }, "metric": { "type": "object", "oneOf": [ { "$ref": "#/components/schemas/CounterMetric" }, { "$ref": "#/components/schemas/GaugeMetric" }, { "$ref": "#/components/schemas/MeterMetric" }, { "$ref": "#/components/schemas/TimerMetric" } ] } }, "required": [ "metric" ] } }, "healthchecks": { "type": "object", "description": "Diagnostic healthchecks", "additionalProperties": { "type": "object", "properties": { "name": { "type": "string", "description": "The fully qualified name of the health check" }, "result": { "description": "The result of the health check", "type": "object", "properties": { "healthy": { "type": "boolean", "description": "Whether the health check represents a healthy or unhealthy result" }, "message": { "type": "string", "description": "A message describing the health check result" }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stacktrace": { "type": "array", "items": { "type": "string" } } } }, "time": { "type": "string", "description": "The time the health check was last run" }, "duration": { "type": "number", "description": "The duration of the health check in milliseconds" } } } } } } } }, "enablement": { "type": "object", "description": "Information about whether this entity is enabled or disabled", "properties": { "enabled": { "type": "boolean", "description": "Whether the entity is enabled" }, "enabledStateMutable": { "type": "boolean", "description": "Whether the enabled state is mutable" } } }, "audit": { "type": "object", "description": "Information about when this entity was last changed", "properties": { "lastModified": { "type": "number", "description": "The time the entity was last modified" }, "lastModifiedBy": { "type": "string", "description": "The user who last modified the entity" } } }, "navigation": { "type": "object", "description": "Information about navigational actions eligible for this entity", "properties": { "section": { "type": "string", "description": "The section of the navigation" }, "actions": { "type": "array", "items": { "type": "object", "properties": { "action": { "type": "string", "description": "The action" }, "url": { "type": "string", "description": "The URL" } } } } } }, "children": { "type": "object", "description": "Information about the children of this entity", "properties": { "total": { "type": "number", "description": "The total number of children" }, "offset": { "type": "number", "description": "The offset specified by the request" }, "limit": { "type": "number", "description": "The limit specified by the request" }, "entities": { "type": "array", "items": { "$ref": "#/components/schemas/Entity" } } } } } }, "CounterMetric": { "properties": { "count": { "type": "number" }, "type": { "type": "string", "const": "counter" }, "description": { "type": "string" }, "units": { "type": "string" } }, "required": [ "count", "type" ] }, "MeterMetric": { "properties": { "oneMinuteRate": { "type": "number" }, "fiveMinuteRate": { "type": "number" }, "fifteenMinuteRate": { "type": "number" }, "count": { "type": "number" }, "meanRate": { "type": "number" }, "type": { "type": "string", "const": "meter" }, "description": { "type": "string" }, "units": { "type": "string" } }, "required": [ "oneMinuteRate", "fiveMinuteRate", "fifteenMinuteRate", "count", "meanRate", "type" ] }, "SecurityLevel": { "properties": { "name": { "type": "string", "description": "The name of the security level." }, "description": { "type": "string", "description": "A description of the security level." }, "children": { "type": "array", "items": { "$ref": "#/components/schemas/SecurityLevel" }, "description": "Security levels that are children of this security level." } }, "required": [ "name" ] }, "WebUiComponent": { "oneOf": [ { "title": "ReactComponent", "description": "A React component that can be mounted in the UI.", "properties": { "type": { "type": "string", "const": "react-component" }, "componentId": { "type": "string", "description": "The react component id." }, "module": { "type": "string", "description": "The SystemJS module that contains the component to be rendered, if any." } } }, { "title": "ExtensionPointResourceForm", "description": "A form that can be used to add or edit an extension point resource.", "properties": { "type": { "type": "string", "const": "extension-point-resource-form" }, "resourceType": { "type": "string", "description": "The type of extension point resource that this extension point form is for." }, "extensionPointType": { "type": "string", "description": "The specific type of extension point that this form is for." }, "resourceNoun": { "type": "string", "description": "The noun that describes the resource type. For example, 'Connection' or 'Device'. Will be used in UI in contexts like 'Add New {resourceNoun}' or 'Set whether this {resourceNoun} is enabled or disabled'." }, "profileSchema": { "type": "object", "description": "A JSON schema that describes the structure of the 'config.profile' object of the resource." }, "settingsSchema": { "type": "object", "description": "A JSON schema that describes the structure of the 'config.settings' object of the resource." }, "advancedCategories": { "type": "array", "description": "A JSON array that defines categories that should be shown in the Advanced section." } } } ] }, "GaugeMetric": { "properties": { "value": { "type": "number" }, "type": { "enum": [ "gauge", "ratio-gauge" ] }, "numerator": { "type": "number" }, "denominator": { "type": "number" }, "description": { "type": "string" }, "units": { "type": "string" } }, "required": [ "value", "type" ] } } }, "x-tagGroups": [ { "name": "EAM Module", "tags": [ "agent-group", "agent-management", "eam-tasks", "event-thresholds", "license-management", "module-certificate", "module-eula", "module-settings", "remote-upgrade", "storage" ] }, { "name": "Vision Module", "tags": [ "vision-sessions" ] }, { "name": "Reporting Module", "tags": [ "reports-info" ] }, { "name": "historian", "tags": [ "historian-config" ] }, { "name": "BACnet", "tags": [ "local-devices" ] }, { "name": "SFC Module", "tags": [ "charts-info", "sfc-config" ] }, { "name": "Perspective", "tags": [ "config-perspective-branding", "config-perspective-fonts", "config-perspective-icons", "config-perspective-themes", "perspective-sessions" ] }, { "name": "Alarm Notification", "tags": [ "alarm-notification-profile", "pipeline-status", "roster-config" ] }, { "name": "Event Streams", "tags": [ "streams-info" ] }, { "name": "Alarming", "tags": [ "general-alarm-settings" ] }, { "name": "SQL Bridge Module", "tags": [ "groups-info" ] }, { "name": "Ignition Platform", "tags": [ "alarm-journal-resources", "api-token", "audit", "config-alarm", "config-api-token", "config-audit-profiles", "config-databases", "config-edge-system-properties", "config-email-profile", "config-gateway-network", "config-identity-provider", "config-keyboard-layouts", "config-local-system-properties", "config-management", "config-metrics-dashboard", "config-oauth2-client", "config-secret-provider", "config-security-levels", "config-security-properties", "config-security-zone", "config-store-forward", "config-system-properties", "config-tag-provider", "config-translations", "config-user-source", "data-syncs", "designer-sessions", "encryption", "entity", "executors", "gateway-backups", "gateway-info", "gateway-network", "gateway-scripts", "launcher", "license-activation", "license-status", "logging", "managed-tag-provider", "modules", "opc-connection", "overview", "projects", "quickstart", "redundancy", "restart-tasks", "running-scripts", "secret-providers", "service-connectors", "system-performance", "thread-diagnostics", "user-management-scim" ] }, { "name": "OPC UA", "tags": [ "access-control", "certificate-management", "client-pki-certificate-management", "device", "server", "server-pki-certificate-management" ] } ] }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/WhiskeyHouse/ignition-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server