{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "ObjectType", "description": "Source description of an OPC-UA ObjectType for ModelDesign XML generation.", "type": "object", "properties": { "description": { "description": "The description of the ObjectType.", "type": "string" }, "name": { "description": "The name of the ObjectType (e.g. MotorType).", "type": "string" }, "variable": { "description": "The list of variables found in the ObjectDesign modelization.", "type": "array", "items": { "$ref": "#/$defs/Variable" } } }, "required": [ "name", "description", "variable" ], "$defs": { "AccessLevel": { "description": "The access level of the variable.\n\nThis is a subset of [available levels].\n\n[available levels]: https://reference.opcfoundation.org/specs/OPC-10000-3/8.57", "type": "string", "enum": [ "Read", "Write", "ReadWrite" ] }, "ScalarDataType": { "description": "OPC-UA scalar datatypes that can be used for variables. The set of types has been chosen arbitrarily.", "type": "string", "enum": [ "Boolean", "SByte", "Byte", "Int16", "UInt16", "Int32", "UInt32", "Int64", "UInt64", "Float", "Double", "String", "DateTime", "Guid", "ByteString", "LocalizedText" ] }, "Variable": { "description": "Represents the modelization for a variable member of an ObjectType.", "type": "object", "properties": { "access_level": { "description": "The access level of the variable.", "$ref": "#/$defs/AccessLevel" }, "array_dimensions": { "description": "A list of [array dimensions] for the variable.\n\n[array dimensions]: https://reference.opcfoundation.org/specs/OPC-10000-6/5.2.5", "type": [ "array", "null" ], "items": { "type": "integer", "format": "int32" }, "minItems": 1 }, "data_type": { "description": "The OPC-UA data type of the variable.", "$ref": "#/$defs/ScalarDataType" }, "description": { "description": "The description of the variable.", "type": "string" }, "name": { "description": "The name of the variable.", "type": "string" } }, "required": [ "name", "description", "data_type", "access_level" ] } } }