Класс

Каждая сущность (объект и связь) принажлежит классу. Класс определяет следующие параметры сущности:

Выбранный класс сущности невозможно изменить.

Модель класса

Поле Тип Описание

category_id

String

Идентификатор категории класса. Подробную информацию о категории можно найти в разделе Идентификатор категории.

client_data

String

Данные клиента класса. Подробную информацию о данных клиента можно найти в разделе Клиентские данные.

description

String

Описание класса.

entityType

Integer

Тип сущности. Для класса, тип сущности – 4.

id

String
required

Идентификатор класса.

name

String
required

Имя класса.

operations

Array<Operation>

Массив операций класса.

properties

Array<Property>

Массив свойств класса.

triggers

Array<Trigger>

Массив пользовательских триггеров класса. Подробную информацию о пользовательских триггерах можно найти в разделе Пользовательские триггеры.

Клиентские данные

Клиентские данные – набор полей, которые определяют отображение класса в пользовательском интерфейсе. Данные поля указываются в формате JSON и хранятся на сервере в виде строки. Таблица ниже содержит описание всех полей:

Поле Тип Описание

background

String

Идентификатор изображения, используемого в качестве фона для класса.

columns

Array<ClassColumn>

Массив колонок класса.

default_view

String

Способ отображения класса по умолчанию: standard, geo-view, end-view, table-view, grid-view.

defaultDim

Array<Integer>

Размеры по умолчанию для объектов, принадлежащих данному классу. Указываются как массив двух целых чисел, первое из которых задает ширину, а второе высоту.

Колонка класса

Поле Тип Описание

hidden

Boolean

Скрытие колонки.

id

String
required

Идентификатор колонки класса.

name

String
required

Название колонки класса.

removable

Boolean

Удаление колонки.

type

String

Тип колонки класса.

Идентификатор категории

Идентификатор категории класса используется для группировки дочерних объектов.

Дочерние объекты, принадлежащие классу с одинаковым идентификатором категории, отображаются на родительском объекте рядом. Дочерние объекты с различными идентификаторами категорий разделяются горизонтальной чертой.

Пример отображения дочерних объектов в веб-интерфейсе:

Пример объектов

Пользовательские триггеры

Сервер может запускать скрипты при создании или удалении объектов. Пользовательские триггеры определяют запускаемые скрипты, их аргументы и случаи, в которых они запускаются.

Пользовательские триггеры имеют следующие поля:

Поле Тип Описание

args

Object

JSON-объект, содержащий набор пар ключ-значение с аргументами, которые будут переданы скрипту.

customScriptId

String

Путь к скрипту, который будет запущен.

type

String

Условия запуска триггера. Возможные значения: create и remove.

В скрипт можно передать следующие переменные:

Поле Тип Описание

{{body}}

String

Тело объекта в формате JSON.

{{class_id}}

String

Идентификатор класса объекта.

{{client_data}}

String

Данные клиента объекта.

{{created}}

Integer

Временная метка создания объекта.

{{entityId}}

String

Идентификатор сущности.

{{geoposition}}

String

Гео-гоординаты объекта.

{{geopositionRadius}}

String

Гео-радиус объекта.

{{id}}

String

Идентификатор объекта.

{{last_state_update}}

Integer

Временная метка последнего изменения Состояния.

{{name}}

String

Имя объекта.

{{parent_id}}

Array<String>

Список идентификаторов родительских объектов.

{{state_id}}

String

Идентификатор Состояния объекта.

{{tags}}

Array<Tag>

Теги объекта.

{{updated}}

Integer

Временная метка обновления объекта.

Пример

Данный пример содержит два пользовательских триггера. Первый триггер запускается при создании объекта, второй – при удалении.

"triggers": [
    {
        "type": "create",
        "args": {
            ";saymon-ctp-auto-id#0": "first var",
            ";saymon-ctp-auto-id#1": "second var"
        },
        "customScriptId": "test/class_trigger.sh"
    },
    {
        "type": "remove",
        "args": {
            ";saymon-ctp-auto-id#0": "pos var",
            "--name": "{{name}}",
            "--description": "Object was removed"
        },
        "customScriptId": "test/hello_world.sh"
    }
]