Папки ~~~~~ Пользовательская папка — класс ``prsFolder``. Отдельного ресурса ``/v1/folders`` нет. Папка создаётся запросом создания той сущности, в чьей ветке она лежит. Поле ``folder`` по умолчанию ``false``: без него запрос создаёт обычный узел. .. code-block:: json POST /v1/objects/ {"folder": true, "attributes": {"cn": "Режимы работы"}} Пустой ``parentId`` — корень этого сервиса, как при создании объекта или тега. Чтобы положить папку внутрь объекта или другой папки, передайте их id. .. code-block:: json POST /v1/tags/ { "folder": true, "parentId": "", "attributes": {"cn": "Счётчики"} } Какая команда какую папку создаёт: .. list-table:: :header-rows: 1 * - Запрос - Где появляется папка - Что можно положить внутрь * - ``POST /v1/objects/`` - ветка объектов - папка, объект, тег * - ``POST /v1/tags/`` - ветка тегов или объект - папка, тег * - ``POST /v1/connectors/`` - ветка коннекторов - папка, коннектор * - ``POST /v1/schedules/`` - ветка расписаний - папка, расписание * - ``POST /v1/dataStorages/`` - ветка хранилищ - папка, хранилище * - ``POST /v1/methods/`` - каталог методов - папка, метод каталога Тревога этим флагом папку не создаёт: запрос возвращает ``422``. Каталог методов использует тот же флаг: .. code-block:: json POST /v1/methods/ {"folder": true, "attributes": {"cn": "stdlib"}} Имя ``system`` зарезервировано. В LDAP сохраняются ``cn``, ``description``, ``prsActive`` и ``prsIndex``. Чтение папок — тот же ``GET`` сущности с фильтром ``objectClass=prsFolder``. Имя корня (``objects``, ``tags``, ``connectors``, ``schedules``, ``dataStorages``, ``methods``) допустимо в ``base``. Тег внутри папки при ``scope=1`` не виден: его возвращает ``scope=2``. Изменение и удаление — ``PUT`` и ``DELETE`` той же сущности с id папки. Удаление снимает содержимое тем же каскадом, что удаление объекта. Перенос в другую ветку и в собственное поддерево отклоняется. Право на создание, изменение и удаление — право этой сущности (``prsObject.create`` и остальные). Отдельного действия ``prsFolder.*`` для HTTP нет.