TouchPortalAPI v1.7.8

TouchPortalAPI.sdk_spec

Touch Portal API spec tables

Each lookup table corresponds to a major "collection" in TP SDK, which are all listed in the TP API Reference page (https://www.touch-portal.com/api/index.php?section=reference) The tables can be used for generating and/or validating entry.tp files. Some tables, like for Actions, may contain nested data structures (like Action Data).

Table attributes
  • v: minimum TP SDK version
  • r: required true/false
  • t: value type (default is str)
  • d: default value, if any
  • c: optional list of valid value(s) (choices)
  • l: lookup table for child data structures, if any

TODO: List valid attribute values per SDK version?

  1"""
  2Touch Portal API spec tables
  3
  4Each lookup table corresponds to a major "collection" in TP SDK,
  5which are all listed in the TP API Reference page (https://www.touch-portal.com/api/index.php?section=reference)
  6The tables can be used for generating and/or validating entry.tp files.
  7Some tables, like for Actions, may contain nested data structures (like Action Data).
  8
  9Table attributes:
 10  - `v`: minimum TP SDK version
 11  - `r`: required true/false
 12  - `t`: value type (default is `str`)
 13  - `d`: default value, if any
 14  - `c`: optional list of valid value(s) (choices)
 15  - `l`: lookup table for child data structures, if any
 16
 17TODO: List valid attribute values per SDK version?
 18"""
 19
 20__copyright__ = """
 21This file is part of the TouchPortal-API project.
 22Copyright TouchPortal-API Developers
 23Copyright (c) 2021 Maxim Paperno
 24All rights reserved.
 25
 26This program is free software: you can redistribute it and/or modify
 27it under the terms of the GNU General Public License as published by
 28the Free Software Foundation, either version 3 of the License, or
 29(at your option) any later version.
 30
 31This program is distributed in the hope that it will be useful,
 32but WITHOUT ANY WARRANTY; without even the implied warranty of
 33MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 34GNU General Public License for more details.
 35
 36You should have received a copy of the GNU General Public License
 37along with this program.  If not, see <https://www.gnu.org/licenses/>.
 38"""
 39
 40TPSDK_DEFAULT_VERSION = 6
 41""" Default Touch Portal SDK version for generating entry.tp JSON. """
 42
 43TPSDK_ATTRIBS_SETTINGS = {
 44# key name              sdk V   required    [type(s)]    [default value]    [valid value list]
 45  'name':             { 'v': 3, 'r': True,  't': str },
 46  'type':             { 'v': 3, 'r': True,  't': str,   'd': "text",        'c': ["text","number"] },
 47  'default':          { 'v': 3, 'r': False, 't': str },
 48  'maxLength':        { 'v': 3, 'r': False, 't': int },
 49  'isPassword':       { 'v': 3, 'r': False, 't': bool },
 50  'minValue':         { 'v': 3, 'r': False, 't': int },
 51  'maxValue':         { 'v': 3, 'r': False, 't': int },
 52  'readOnly':         { 'v': 3, 'r': False, 't': bool,  'd': False },
 53}
 54""" [Settings structure](https://www.touch-portal.com/api/index.php?section=settings) """
 55
 56TPSDK_ATTRIBS_STATE = {
 57# key name              sdk V   required    [type(s)]    [default value]    [valid value list]
 58  'id':               { 'v': 1, 'r': True,  't': str },
 59  'type':             { 'v': 1, 'r': True,  't': str,   'd': "text",        'c': ["text","choice"]},
 60  'desc':             { 'v': 1, 'r': True,  't': str },
 61  'default':          { 'v': 1, 'r': True,  't': str,   'd': "" },
 62  "parentGroup":      {"v": 6, "r": False, "t": str},
 63  'valueChoices':     { 'v': 1, 'r': False, 't': list },
 64}
 65""" [State structure](https://www.touch-portal.com/api/index.php?section=states) """
 66
 67TPSDK_ATTRIBS_EVENT = {
 68# key name              sdk V   required    [type(s)]    [default value]    [valid value list]
 69  'id':               { 'v': 1, 'r': True,  't': str },
 70  'name':             { 'v': 1, 'r': True,  't': str },
 71  'format':           { 'v': 1, 'r': True,  't': str },
 72  'type':             { 'v': 1, 'r': True,  't': str,   'd': "communicate", 'c': ["communicate"] },
 73  'valueChoices':     { 'v': 1, 'r': True,  't': list,  'd': [] },
 74  'valueType':        { 'v': 1, 'r': True,  't': str,   'd': "choice",      'c': ["choice"] },
 75  'valueStateId':     { 'v': 1, 'r': True,  't': str },
 76}
 77""" [Event structure](https://www.touch-portal.com/api/index.php?section=events) """
 78
 79TPSDK_ATTRIBS_ACT_DATA = {
 80# key name              sdk V   required    [type(s)]    [default value]    [valid value list]
 81  'id':               { 'v': 1, 'r': True,  't': str },
 82  'type':             { 'v': 1, 'r': True,  't': str,   'd': "text",        'c': ["text","number","switch","choice","file","folder","color"] },
 83  'label':            { 'v': 1, 'r': True,  't': str },
 84  'default':          { 'v': 1, 'r': True,  't': (str,int,float,bool), 'd': "" },
 85  'valueChoices':     { 'v': 1, 'r': False, 't': list },
 86  'extensions':       { 'v': 2, 'r': False, 't': list },
 87  'allowDecimals':    { 'v': 2, 'r': False, 't': bool },
 88  'minValue':         { 'v': 3, 'r': False, 't': int },
 89  'maxValue':         { 'v': 3, 'r': False, 't': int }
 90}
 91""" [Action Data structure](https://www.touch-portal.com/api/index.php?section=action-data) """
 92
 93TPSDK_ATTRIBS_ACTION = {
 94# key name              sdk V   required    [type(s)]    [default value]    [valid value list]   [lookup table]
 95  'id':               { 'v': 1, 'r': True,  't': str },
 96  'name':             { 'v': 1, 'r': True,  't': str },
 97  'prefix':           { 'v': 1, 'r': True,  't': str },  # dynamic default? based on category name?
 98  'type':             { 'v': 1, 'r': True,  't': str,   'd': "communicate", 'c': ["communicate","execute"] },
 99  'description':      { 'v': 1, 'r': False, 't': str },
100  'format':           { 'v': 1, 'r': False, 't': str },
101  'executionType':    { 'v': 1, 'r': False, 't': str },
102  'execution_cmd':    { 'v': 1, 'r': False, 't': str },
103  'tryInline':        { 'v': 1, 'r': False, 't': bool },
104  'hasHoldFunctionality': { 'v': 3, 'r': False, 't': bool },
105  'data':             { 'v': 1, 'r': False, 't': list, 'l': TPSDK_ATTRIBS_ACT_DATA },
106}
107""" [Dynamic Action structure](https://www.touch-portal.com/api/index.php?section=dynamic-actions) """
108
109TPSDK_ATTRIBS_CONNECTOR = {
110# key name              sdk V   required    [type(s)]    [default value]    [valid value list]   [lookup table]
111  'id':               { 'v': 4, 'r': True,  't': str },
112  'name':             { 'v': 4, 'r': True,  't': str },
113  'format':           { 'v': 4, 'r': False, 't': str },
114  'data':             { 'v': 4, 'r': False, 't': list, 'l': TPSDK_ATTRIBS_ACT_DATA },  # same data as Actions? TP API docs are still vague
115}
116""" [Connector structure](https://www.touch-portal.com/api/index.php?section=connectors) """
117
118TPSDK_ATTRIBS_CATEGORY = {
119# key name              sdk V   required    [type(s)]  [lookup table]
120  'id':               { 'v': 1, 'r': True,  't': str },  # dynamic default id based on plugin id?
121  'name':             { 'v': 1, 'r': True,  't': str },  # dynamic default based on plugin name?
122  'imagepath':        { 'v': 1, 'r': False, 't': str },
123  'actions':          { 'v': 1, 'r': False, 't': list, 'l': TPSDK_ATTRIBS_ACTION },
124  'connectors':       { 'v': 4, 'r': False, 't': list, 'l': TPSDK_ATTRIBS_CONNECTOR },
125  'states':           { 'v': 1, 'r': False, 't': list, 'l': TPSDK_ATTRIBS_STATE },
126  'events':           { 'v': 1, 'r': False, 't': list, 'l': TPSDK_ATTRIBS_EVENT },
127}
128""" [Category structure](https://www.touch-portal.com/api/index.php?section=categories) """
129
130TPSDK_ATTRIBS_ROOT = {
131# key name              sdk V   required    [type(s)]    [default value]            [valid value list]   [lookup table]
132  'sdk':              { 'v': 1, 'r': True,  't': int,   'd': TPSDK_DEFAULT_VERSION, 'c': [1,2,3,4,5,6] },
133  'version':          { 'v': 1, 'r': True,  't': int,   'd': 1 },
134  'name':             { 'v': 1, 'r': True,  't': str },
135  'id':               { 'v': 1, 'r': True,  't': str },
136  'configuration':    { 'v': 1, 'r': False, 't': dict },
137  'plugin_start_cmd': { 'v': 1, 'r': False, 't': str },
138  'plugin_start_cmd_windows': { 'v': 4, 'r': False, 't': str },
139  'plugin_start_cmd_linux':   { 'v': 4, 'r': False, 't': str },
140  'plugin_start_cmd_mac':     { 'v': 4, 'r': False, 't': str },
141  'categories':       { 'v': 1, 'r': True,  't': list,  'd': [], 'l': TPSDK_ATTRIBS_CATEGORY },
142  'settings':         { 'v': 3, 'r': False, 't': list,  'd': [], 'l': TPSDK_ATTRIBS_SETTINGS },
143}
144""" [Plugin structure](https://www.touch-portal.com/api/index.php?section=structure) """
TPSDK_DEFAULT_VERSION = 6

Default Touch Portal SDK version for generating entry.tp JSON.

TPSDK_ATTRIBS_SETTINGS = {'name': {'v': 3, 'r': True, 't': <class 'str'>}, 'type': {'v': 3, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'number']}, 'default': {'v': 3, 'r': False, 't': <class 'str'>}, 'maxLength': {'v': 3, 'r': False, 't': <class 'int'>}, 'isPassword': {'v': 3, 'r': False, 't': <class 'bool'>}, 'minValue': {'v': 3, 'r': False, 't': <class 'int'>}, 'maxValue': {'v': 3, 'r': False, 't': <class 'int'>}, 'readOnly': {'v': 3, 'r': False, 't': <class 'bool'>, 'd': False}}
TPSDK_ATTRIBS_STATE = {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'choice']}, 'desc': {'v': 1, 'r': True, 't': <class 'str'>}, 'default': {'v': 1, 'r': True, 't': <class 'str'>, 'd': ''}, 'parentGroup': {'v': 6, 'r': False, 't': <class 'str'>}, 'valueChoices': {'v': 1, 'r': False, 't': <class 'list'>}}
TPSDK_ATTRIBS_EVENT = {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'name': {'v': 1, 'r': True, 't': <class 'str'>}, 'format': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'communicate', 'c': ['communicate']}, 'valueChoices': {'v': 1, 'r': True, 't': <class 'list'>, 'd': []}, 'valueType': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'choice', 'c': ['choice']}, 'valueStateId': {'v': 1, 'r': True, 't': <class 'str'>}}
TPSDK_ATTRIBS_ACT_DATA = {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'number', 'switch', 'choice', 'file', 'folder', 'color']}, 'label': {'v': 1, 'r': True, 't': <class 'str'>}, 'default': {'v': 1, 'r': True, 't': (<class 'str'>, <class 'int'>, <class 'float'>, <class 'bool'>), 'd': ''}, 'valueChoices': {'v': 1, 'r': False, 't': <class 'list'>}, 'extensions': {'v': 2, 'r': False, 't': <class 'list'>}, 'allowDecimals': {'v': 2, 'r': False, 't': <class 'bool'>}, 'minValue': {'v': 3, 'r': False, 't': <class 'int'>}, 'maxValue': {'v': 3, 'r': False, 't': <class 'int'>}}
TPSDK_ATTRIBS_ACTION = {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'name': {'v': 1, 'r': True, 't': <class 'str'>}, 'prefix': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'communicate', 'c': ['communicate', 'execute']}, 'description': {'v': 1, 'r': False, 't': <class 'str'>}, 'format': {'v': 1, 'r': False, 't': <class 'str'>}, 'executionType': {'v': 1, 'r': False, 't': <class 'str'>}, 'execution_cmd': {'v': 1, 'r': False, 't': <class 'str'>}, 'tryInline': {'v': 1, 'r': False, 't': <class 'bool'>}, 'hasHoldFunctionality': {'v': 3, 'r': False, 't': <class 'bool'>}, 'data': {'v': 1, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'number', 'switch', 'choice', 'file', 'folder', 'color']}, 'label': {'v': 1, 'r': True, 't': <class 'str'>}, 'default': {'v': 1, 'r': True, 't': (<class 'str'>, <class 'int'>, <class 'float'>, <class 'bool'>), 'd': ''}, 'valueChoices': {'v': 1, 'r': False, 't': <class 'list'>}, 'extensions': {'v': 2, 'r': False, 't': <class 'list'>}, 'allowDecimals': {'v': 2, 'r': False, 't': <class 'bool'>}, 'minValue': {'v': 3, 'r': False, 't': <class 'int'>}, 'maxValue': {'v': 3, 'r': False, 't': <class 'int'>}}}}
TPSDK_ATTRIBS_CONNECTOR = {'id': {'v': 4, 'r': True, 't': <class 'str'>}, 'name': {'v': 4, 'r': True, 't': <class 'str'>}, 'format': {'v': 4, 'r': False, 't': <class 'str'>}, 'data': {'v': 4, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'number', 'switch', 'choice', 'file', 'folder', 'color']}, 'label': {'v': 1, 'r': True, 't': <class 'str'>}, 'default': {'v': 1, 'r': True, 't': (<class 'str'>, <class 'int'>, <class 'float'>, <class 'bool'>), 'd': ''}, 'valueChoices': {'v': 1, 'r': False, 't': <class 'list'>}, 'extensions': {'v': 2, 'r': False, 't': <class 'list'>}, 'allowDecimals': {'v': 2, 'r': False, 't': <class 'bool'>}, 'minValue': {'v': 3, 'r': False, 't': <class 'int'>}, 'maxValue': {'v': 3, 'r': False, 't': <class 'int'>}}}}
TPSDK_ATTRIBS_CATEGORY = {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'name': {'v': 1, 'r': True, 't': <class 'str'>}, 'imagepath': {'v': 1, 'r': False, 't': <class 'str'>}, 'actions': {'v': 1, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'name': {'v': 1, 'r': True, 't': <class 'str'>}, 'prefix': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'communicate', 'c': ['communicate', 'execute']}, 'description': {'v': 1, 'r': False, 't': <class 'str'>}, 'format': {'v': 1, 'r': False, 't': <class 'str'>}, 'executionType': {'v': 1, 'r': False, 't': <class 'str'>}, 'execution_cmd': {'v': 1, 'r': False, 't': <class 'str'>}, 'tryInline': {'v': 1, 'r': False, 't': <class 'bool'>}, 'hasHoldFunctionality': {'v': 3, 'r': False, 't': <class 'bool'>}, 'data': {'v': 1, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'number', 'switch', 'choice', 'file', 'folder', 'color']}, 'label': {'v': 1, 'r': True, 't': <class 'str'>}, 'default': {'v': 1, 'r': True, 't': (<class 'str'>, <class 'int'>, <class 'float'>, <class 'bool'>), 'd': ''}, 'valueChoices': {'v': 1, 'r': False, 't': <class 'list'>}, 'extensions': {'v': 2, 'r': False, 't': <class 'list'>}, 'allowDecimals': {'v': 2, 'r': False, 't': <class 'bool'>}, 'minValue': {'v': 3, 'r': False, 't': <class 'int'>}, 'maxValue': {'v': 3, 'r': False, 't': <class 'int'>}}}}}, 'connectors': {'v': 4, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 4, 'r': True, 't': <class 'str'>}, 'name': {'v': 4, 'r': True, 't': <class 'str'>}, 'format': {'v': 4, 'r': False, 't': <class 'str'>}, 'data': {'v': 4, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'number', 'switch', 'choice', 'file', 'folder', 'color']}, 'label': {'v': 1, 'r': True, 't': <class 'str'>}, 'default': {'v': 1, 'r': True, 't': (<class 'str'>, <class 'int'>, <class 'float'>, <class 'bool'>), 'd': ''}, 'valueChoices': {'v': 1, 'r': False, 't': <class 'list'>}, 'extensions': {'v': 2, 'r': False, 't': <class 'list'>}, 'allowDecimals': {'v': 2, 'r': False, 't': <class 'bool'>}, 'minValue': {'v': 3, 'r': False, 't': <class 'int'>}, 'maxValue': {'v': 3, 'r': False, 't': <class 'int'>}}}}}, 'states': {'v': 1, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'choice']}, 'desc': {'v': 1, 'r': True, 't': <class 'str'>}, 'default': {'v': 1, 'r': True, 't': <class 'str'>, 'd': ''}, 'parentGroup': {'v': 6, 'r': False, 't': <class 'str'>}, 'valueChoices': {'v': 1, 'r': False, 't': <class 'list'>}}}, 'events': {'v': 1, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'name': {'v': 1, 'r': True, 't': <class 'str'>}, 'format': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'communicate', 'c': ['communicate']}, 'valueChoices': {'v': 1, 'r': True, 't': <class 'list'>, 'd': []}, 'valueType': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'choice', 'c': ['choice']}, 'valueStateId': {'v': 1, 'r': True, 't': <class 'str'>}}}}
TPSDK_ATTRIBS_ROOT = {'sdk': {'v': 1, 'r': True, 't': <class 'int'>, 'd': 6, 'c': [1, 2, 3, 4, 5, 6]}, 'version': {'v': 1, 'r': True, 't': <class 'int'>, 'd': 1}, 'name': {'v': 1, 'r': True, 't': <class 'str'>}, 'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'configuration': {'v': 1, 'r': False, 't': <class 'dict'>}, 'plugin_start_cmd': {'v': 1, 'r': False, 't': <class 'str'>}, 'plugin_start_cmd_windows': {'v': 4, 'r': False, 't': <class 'str'>}, 'plugin_start_cmd_linux': {'v': 4, 'r': False, 't': <class 'str'>}, 'plugin_start_cmd_mac': {'v': 4, 'r': False, 't': <class 'str'>}, 'categories': {'v': 1, 'r': True, 't': <class 'list'>, 'd': [], 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'name': {'v': 1, 'r': True, 't': <class 'str'>}, 'imagepath': {'v': 1, 'r': False, 't': <class 'str'>}, 'actions': {'v': 1, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'name': {'v': 1, 'r': True, 't': <class 'str'>}, 'prefix': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'communicate', 'c': ['communicate', 'execute']}, 'description': {'v': 1, 'r': False, 't': <class 'str'>}, 'format': {'v': 1, 'r': False, 't': <class 'str'>}, 'executionType': {'v': 1, 'r': False, 't': <class 'str'>}, 'execution_cmd': {'v': 1, 'r': False, 't': <class 'str'>}, 'tryInline': {'v': 1, 'r': False, 't': <class 'bool'>}, 'hasHoldFunctionality': {'v': 3, 'r': False, 't': <class 'bool'>}, 'data': {'v': 1, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'number', 'switch', 'choice', 'file', 'folder', 'color']}, 'label': {'v': 1, 'r': True, 't': <class 'str'>}, 'default': {'v': 1, 'r': True, 't': (<class 'str'>, <class 'int'>, <class 'float'>, <class 'bool'>), 'd': ''}, 'valueChoices': {'v': 1, 'r': False, 't': <class 'list'>}, 'extensions': {'v': 2, 'r': False, 't': <class 'list'>}, 'allowDecimals': {'v': 2, 'r': False, 't': <class 'bool'>}, 'minValue': {'v': 3, 'r': False, 't': <class 'int'>}, 'maxValue': {'v': 3, 'r': False, 't': <class 'int'>}}}}}, 'connectors': {'v': 4, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 4, 'r': True, 't': <class 'str'>}, 'name': {'v': 4, 'r': True, 't': <class 'str'>}, 'format': {'v': 4, 'r': False, 't': <class 'str'>}, 'data': {'v': 4, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'number', 'switch', 'choice', 'file', 'folder', 'color']}, 'label': {'v': 1, 'r': True, 't': <class 'str'>}, 'default': {'v': 1, 'r': True, 't': (<class 'str'>, <class 'int'>, <class 'float'>, <class 'bool'>), 'd': ''}, 'valueChoices': {'v': 1, 'r': False, 't': <class 'list'>}, 'extensions': {'v': 2, 'r': False, 't': <class 'list'>}, 'allowDecimals': {'v': 2, 'r': False, 't': <class 'bool'>}, 'minValue': {'v': 3, 'r': False, 't': <class 'int'>}, 'maxValue': {'v': 3, 'r': False, 't': <class 'int'>}}}}}, 'states': {'v': 1, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'choice']}, 'desc': {'v': 1, 'r': True, 't': <class 'str'>}, 'default': {'v': 1, 'r': True, 't': <class 'str'>, 'd': ''}, 'parentGroup': {'v': 6, 'r': False, 't': <class 'str'>}, 'valueChoices': {'v': 1, 'r': False, 't': <class 'list'>}}}, 'events': {'v': 1, 'r': False, 't': <class 'list'>, 'l': {'id': {'v': 1, 'r': True, 't': <class 'str'>}, 'name': {'v': 1, 'r': True, 't': <class 'str'>}, 'format': {'v': 1, 'r': True, 't': <class 'str'>}, 'type': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'communicate', 'c': ['communicate']}, 'valueChoices': {'v': 1, 'r': True, 't': <class 'list'>, 'd': []}, 'valueType': {'v': 1, 'r': True, 't': <class 'str'>, 'd': 'choice', 'c': ['choice']}, 'valueStateId': {'v': 1, 'r': True, 't': <class 'str'>}}}}}, 'settings': {'v': 3, 'r': False, 't': <class 'list'>, 'd': [], 'l': {'name': {'v': 3, 'r': True, 't': <class 'str'>}, 'type': {'v': 3, 'r': True, 't': <class 'str'>, 'd': 'text', 'c': ['text', 'number']}, 'default': {'v': 3, 'r': False, 't': <class 'str'>}, 'maxLength': {'v': 3, 'r': False, 't': <class 'int'>}, 'isPassword': {'v': 3, 'r': False, 't': <class 'bool'>}, 'minValue': {'v': 3, 'r': False, 't': <class 'int'>}, 'maxValue': {'v': 3, 'r': False, 't': <class 'int'>}, 'readOnly': {'v': 3, 'r': False, 't': <class 'bool'>, 'd': False}}}}