{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "definitions": { "visibility": { "type": "string", "enum": [ "AlwaysShow", "AlwaysHide", "HideInEngineering" ], "default": "AlwaysShow" }, "serverSymbol": { "allOf": [ { "$ref": "http://json-schema.org/draft-04/schema#" }, { "type": "object", "properties": { "function": { "type": "boolean", "description": "true to declare this symbol as a function." } } } ] }, "symbolVersionHistory": { "type": "object", "properties": { "description": { "type": "string", "description": "Description of the symbol." }, "sample": { "description": "Sample value for the WriteValue. Can be used for documentation.", "type": "object", "properties": { "description": { "description": "A description of this sample." }, "value": { "description": "The 'writeValue' for the command." }, "filter": { "description": "A filter for the command." }, "path": { "description": "A sub-path for the command." }, "requestType": { "description": "The request type for the sample request." } }, "additionalProperties": true } }, "additionalProperties": false } }, "properties": { "$schema": { "type": "string" }, "policies": { "type": "array", "items": { "type": "string", "enum": [ "StrictPropertyValidation", "StrictConfigListenerFilter" ] }, "description": "StrictPropertyValidation: when not set, functions without writeValue will accept any input\nStrictConfigListenerFilter: when multiple config values are changed at once, pass only those configuration values to the config listener of the corresponding server extension that match the specified filter; otherwise, all changed configuration values are passed to the config listener of the corresponding server extension if any of them matches the specified filter." }, "guid": { "type": "string" }, "visibility": { "allOf": [ { "$ref": "#/definitions/visibility" }, { "description": "Indicates under which circumstances the extension config should be visible." } ] }, "version": { "type": "string", "format": "version", "description": "Version of the extension library." }, "configVersion": { "type": "string", "format": "version", "description": "Version of the configuration file." }, "packageVersion": { "type": "string", "description": "Version of the NuGet package that contains the extension." }, "productVersion": { "type": "string", "format": "version", "description": "Version of the TwinCAT HMI with which the extension was created." }, "dotNetTargetFramework": { "type": "string", "description": "The .NET target framework. (This property is set automatically during the build - do not set it manually.)" }, "dotNetTargetFrameworkVersion": { "type": "string", "description": "Version of the .NET target framework. (This property is set automatically during the build - do not set it manually.)" }, "dotNetPlatformTarget": { "type": "string", "enum": [ "AnyCPU", "x86", "x64" ], "default": "AnyCPU", "description": ".NET platform target. (This property is set automatically during the build - do not set it manually.)" }, "dotNetConfiguration": { "type": "string", "description": "Configuration of the .NET server extension. (This property is set automatically during the build - do not set it manually.)" }, "signature": { "type": "string", "format": "base64" }, "signatureData": { "type": "string", "format": "base64" }, "signatureTcHmiSrvExt": { "type": "string", "format": "base64" }, "signatureTcHmiSrvExtNet": { "type": "string", "format": "base64" }, "fileExtensions": { "type": "array", "items": { "type": "object", "properties": { "fileExtension": { "type": "string", "description": "Extension of the file." }, "fileDescription": { "type": "string", "description": "Language variable describing the file extension." } }, "additionalProperties": false }, "description": "File extensions are used by script extensions." }, "symbolCategories": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "localization": { "type": "string" } }, "required": [ "name", "localization" ] } }, "symbols": { "type": "object", "additionalProperties": { "type": "object", "properties": { "readValue": { "allOf": [ { "$ref": "#/definitions/serverSymbol", "description": "Output parameters of the symbol." }, { "type": "object", "properties": { "readOnly": { "type": "boolean", "description": "true to declare this symbol as read-only." } } } ] }, "writeValue": { "$ref": "#/definitions/serverSymbol", "description": "Input parameters of the symbol." }, "addSymbol": { "type": "boolean", "default": true, "description": "true to automatically map this symbol." }, "automap": { "type": "boolean", "default": true, "description": "true to automatically map this symbol. Deprecated, use addSymbol instead." }, "hidden": { "type": "boolean", "default": true, "description": "true to hide this symbol in symbol browser and on the configuration page." }, "visibility": { "allOf": [ { "$ref": "#/definitions/visibility" }, { "description": "Visibility of the symbol." } ] }, "category": { "type": "string", "description": "Can be used to group related symbols." }, "userGroups": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "object", "additionalProperties": { "type": "integer", "default": 3, "enum": [ 0, 1, 2, 3 ], "description": "Access level of the symbol for this user group." } } ] }, "access": { "type": "integer", "default": 3, "enum": [ 0, 1, 2, 3 ], "description": "Default access level of the symbol." }, "doc": { "type": "string", "description": "THIS PROPERTY IS OBSOLETE. USE PROPERTY 'description' instead." }, "description": { "type": "string", "description": "Description of the symbol." }, "sample": { "description": "Sample value for the WriteValue. Can be used for documentation.", "type": "object", "properties": { "description": { "description": "A description of this sample." }, "value": { "description": "The 'writeValue' for the command." }, "filter": { "description": "A filter for the command." }, "path": { "description": "A sub-path for the command." }, "requestType": { "description": "The request type for the sample request." } }, "additionalProperties": true }, "versions": { "type": "object", "additionalProperties": { "$ref": "#/definitions/symbolVersionHistory" } } }, "additionalProperties": false }, "description": "List of symbols that the extension supports." } }, "required": [ "guid", "version", "configVersion" ] }