openapi: 3.1.1 info: title: VRt.Registry [RG] version: 7.24.2983 license: name: Proprietary url: https://veeroute.cloud/ termsOfService: https://veeroute.cloud/resources/terms_of_service contact: name: Veeroute Support Team email: servicedesk@veeroute.com x-logo: url: ../images/registry.svg backgroundColor: '#FAFAFA' altText: VRt.Registry description: 'Программный интерфейс для Veeroute Registry. # Описание Сервис предназначен для управления конфигурационными файлами. ## Диаграмма сущностей ![erd](../uml/registry.svg) ' servers: - url: https://api.edge7.veeroute.cloud description: Окружение для интеграции и ознакомления с новой функциональностью - url: https://api.prod7.veeroute.cloud description: Основное окружение security: - ApiKeyAuth: [] tags: - name: Explorer description: 'Управление виртуальной файловой системой. ' - name: Backups description: 'Массовый экспорт и импорт данных. ' - name: Configurations description: Управление файлами конфигураций. - name: System description: 'Системные функции. Вспомогательный функционал, общий для всех сервисов. ' externalDocs: description: Сайт компании Veeroute url: https://veeroute.cloud/ paths: /registry/explorer: post: tags: - Explorer summary: Создание папки description: Создание новой папки. operationId: create_folder x-process-type: TRACE requestBody: description: 'Запрос на создание папки. В поле `parent_key` необходимо указать ключ папки, в которой будет создана новая папка. Если `parent_key` не указан - папка создается в корне. ' required: true content: application/json: schema: $ref: '#/components/schemas/folder_specification' responses: '201': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/unique_key' description: Ключ созданной папки. '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' get: tags: - Explorer summary: Чтение структуры папок description: Получение структуры папок. operationId: read_filesystem x-process-type: NOTRACE parameters: - $ref: '#/components/parameters/folder_key' description: Ключ родительской папки, если не указан - возвращается список корневых папок - $ref: '#/components/parameters/filter' description: "Фильтр для поиска по текстовым полям - возвращаются только те\ \ папки, у которых содержится подстрока из фильтра:\n * в названии папки\n\ \ * в комментарии к папке\n" - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/filesystem_column' - $ref: '#/components/parameters/sort_direction' responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/filesystem' examples: DataExplorer: $ref: '#/components/examples/DataExplorer' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/explorer/{folder_key}: put: tags: - Explorer summary: Обновление папки description: Переименование и перемещение папки. operationId: update_folder x-process-type: TRACE parameters: - $ref: '#/components/parameters/folder_key-2' requestBody: description: Запрос на обновление папки. required: true content: application/json: schema: $ref: '#/components/schemas/folder_specification' responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/filesystem' examples: DataExplorer: $ref: '#/components/examples/DataExplorer' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' delete: tags: - Explorer summary: Удаление папки description: Удаление папки по ключу. operationId: delete_folder x-process-type: TRACE parameters: - $ref: '#/components/parameters/folder_key-2' responses: '204': description: Успешное выполнение '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/explorer/{folder_key}/specification: get: tags: - Explorer summary: Информация о папке description: 'Получение информации о папке. ' operationId: read_folder_specification x-process-type: NOTRACE parameters: - $ref: '#/components/parameters/folder_key-2' responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/folder_specification' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/explorer/{folder_key}/path: get: tags: - Explorer summary: Получение пути папки description: Получение пути папки. operationId: read_folder_path x-process-type: NOTRACE parameters: - $ref: '#/components/parameters/folder_key-2' responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/filesystem_path' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/explorer/batch/folders: get: tags: - Explorer summary: Получение ключа папки description: Получение ключа папки по пути. operationId: read_folder_key x-process-type: TRACE requestBody: description: 'Запрос на получение ключа папки по пути от корня виртуальной файловой системы. Если любой папки в пути не существует - вернется 404. ' required: true content: application/json: schema: $ref: '#/components/schemas/folder_name_list' responses: '201': description: Успешное выполнение content: application/json: schema: description: Ключ последней папки. $ref: '#/components/schemas/unique_key' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' post: tags: - Explorer summary: Создание папок (пачка) description: Создание новых папок (пачка). operationId: create_folders_batch x-process-type: TRACE requestBody: description: 'Запрос на создание группы папок от корня виртуальной файловой системы. Если любая папка в пути уже существует - она не будет создаваться заново. Метод возвращает ключ последней папки даже в случае, если не было создано ни одной папки. ' required: true content: application/json: schema: $ref: '#/components/schemas/folder_name_list' responses: '201': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/unique_key' description: Ключ последней папки. '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' delete: tags: - Explorer summary: Удаление папок (пачка) description: Массовое удаление папок. operationId: delete_folders_batch x-process-type: TRACE requestBody: description: Список ключей папок, которые необходимо удалить. required: true content: application/json: schema: $ref: '#/components/schemas/unique_key_list' responses: '204': description: Все папки успешно удалены '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/explorer/batch/files: get: tags: - Explorer summary: Получение ключа файла description: Получение ключа файла по пути. operationId: read_file_key x-process-type: TRACE requestBody: description: 'Запрос на получение ключа файла по пути от корня виртуальной файловой системы. Если в папке несколько файлов с одинаковым названием - возвращается последний измененный. Если любой папки или файла в пути не существует - вернется 404. ' required: true content: application/json: schema: $ref: '#/components/schemas/file_name_path' responses: '201': description: Успешное выполнение content: application/json: schema: description: Ключ файла. $ref: '#/components/schemas/unique_key' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' delete: tags: - Explorer summary: Удаление файлов (пачка) description: Массовое удаление файлов. operationId: delete_files_batch x-process-type: TRACE requestBody: description: Список ключей файлов, которые необходимо удалить. required: true content: application/json: schema: $ref: '#/components/schemas/unique_key_list' responses: '204': description: Все файлы успешно удалены '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/explorer/batch/counters: get: tags: - Explorer summary: Счетчики файловой системы description: Получение статистики по виртуальной файловой системе. operationId: read_filesystem_counters x-process-type: NOTRACE responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/filesystem_counters' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/backups/{folder_key}: post: tags: - Backups summary: Экспорт папки description: 'Экспорт папки с экспериментами. ' operationId: create_backup x-process-type: TRACE parameters: - $ref: '#/components/parameters/folder_key-2' responses: '200': description: Экспорт данных успешно завершен content: application/octet-stream: schema: $ref: '#/components/schemas/file_zip' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' put: tags: - Backups summary: Импорт папки description: 'Импорт папки с экспериментами. Папка не должна типа ROOT и должна быть пустой. ' operationId: restore_backup x-process-type: TRACE parameters: - $ref: '#/components/parameters/folder_key-2' requestBody: description: Данные (ZIP). required: true content: application/octet-stream: schema: $ref: '#/components/schemas/file_zip' responses: '200': description: Импорт данных успешно завершен '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/configurations: post: tags: - Configurations summary: Создание конфигурации description: Создание нового файла конфигурации. operationId: create_configuration x-process-type: TRACE requestBody: description: Запрос на создание файла конфигурации. required: true content: application/json: schema: $ref: '#/components/schemas/file_specification' responses: '201': description: Успешное выполнение content: application/json: schema: description: Ключ созданного файла конфигурации. $ref: '#/components/schemas/unique_key' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/configurations/{configuration_key}: get: tags: - Configurations summary: Чтение конфигурации description: Получение файла конфигурации по ключу. operationId: read_configuration x-process-type: NOTRACE parameters: - $ref: '#/components/parameters/configuration_key' responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/configuration' examples: file: $ref: '#/components/examples/Configuration' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' put: tags: - Configurations summary: Обновление спецификации description: Переименование \ перемещение файла конфигурации. operationId: update_configuration_specification x-process-type: TRACE parameters: - $ref: '#/components/parameters/configuration_key' requestBody: description: Запрос на обновление спецификации конфигурации. required: true content: application/json: schema: $ref: '#/components/schemas/file_specification' responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/configuration' examples: file: $ref: '#/components/examples/Configuration' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' delete: tags: - Configurations summary: Удаление конфигурации description: Удаление конфигурации по ключу. operationId: delete_configuration x-process-type: TRACE parameters: - $ref: '#/components/parameters/configuration_key' responses: '204': description: Успешное выполнение '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/configurations/{configuration_key}/schema: get: tags: - Configurations summary: Чтение схемы description: Чтение схемы. operationId: read_configuration_schema x-process-type: TRACE parameters: - $ref: '#/components/parameters/configuration_key' responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/configuration_json_schema' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' put: tags: - Configurations summary: Обновление схемы description: Обновление схемы. operationId: update_configuration_schema x-process-type: TRACE parameters: - $ref: '#/components/parameters/configuration_key' requestBody: description: Запрос на обновление схемы конфигурации. required: true content: application/json: schema: $ref: '#/components/schemas/configuration_json_schema' responses: '200': description: Успешное выполнение '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/configurations/{configuration_key}/content: get: tags: - Configurations summary: Чтение контента description: Чтение контента. operationId: read_configuration_content x-process-type: TRACE parameters: - $ref: '#/components/parameters/configuration_key' responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/configuration_content' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' put: tags: - Configurations summary: Обновление контента description: Обновление контента. operationId: update_configuration_content x-process-type: TRACE parameters: - $ref: '#/components/parameters/configuration_key' requestBody: description: Запрос на обновление контента конфигурации. required: true content: application/json: schema: $ref: '#/components/schemas/configuration_content' responses: '200': description: Успешное выполнение '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/configurations/batch/table: get: tags: - Configurations summary: Список конфигураций (таблица) description: Получение списка конфигураций в виде таблицы. operationId: read_configurations_table x-process-type: NOTRACE parameters: - $ref: '#/components/parameters/folder_key' - $ref: '#/components/parameters/filter' description: 'Фильтр для поиска по текстовым полям - возвращаются только те файлы, у которых в названии или описании содержится подстрока из фильтра. Если фильтр пустой - возвращаются все файлы в папке. Результат сортируется по времени редактирования. ' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/table_configuration_column' - $ref: '#/components/parameters/sort_direction' responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/table_configuration_list' examples: TableConfigurationList: $ref: '#/components/examples/TableConfigurationList' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/configurations/batch/search: get: tags: - Configurations summary: Поиск конфигураций description: Глобальный поиск конфигураций по всем вложенным папкам. operationId: search_configurations x-process-type: NOTRACE parameters: - $ref: '#/components/parameters/filter_required' description: 'Фильтр для поиска по текстовым полям - возвращаются только те конфигурации, у которых в названии или описании содержится подстрока из фильтра. Если фильтр пустой - возвращается пустой список. По умолчанию результат сортируется по времени редактирования. ' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/table_configuration_column' - $ref: '#/components/parameters/sort_direction' responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/table_configuration_list' examples: TableConfigurationList: $ref: '#/components/examples/TableConfigurationList' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/configurations/{configuration_key}/actions/duplicate: post: tags: - Configurations summary: Дублирование конфигурации description: Дублирование конфигурации. operationId: duplicate_configuration x-process-type: TRACE parameters: - $ref: '#/components/parameters/configuration_key' requestBody: description: Запрос на дублирование конфигурации. required: true content: application/json: schema: description: Параметры новой конфигурации, которая получится в результате дублирования. $ref: '#/components/schemas/file_specification' responses: '201': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/unique_key' description: Ключ продублированной конфигурации. '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '402': $ref: '#/components/responses/402' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/system/check: get: tags: - System summary: Проверка доступности description: Проверка доступности сервиса. operationId: check x-process-type: NOTRACE security: [] responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/check_result' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/system/version: get: tags: - System summary: Получение версии сервиса description: Получение версии сервиса. operationId: version x-process-type: NOTRACE security: [] responses: '200': description: Успешное выполнение content: application/json: schema: $ref: '#/components/schemas/version_result' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' /registry/file/{filename}: get: tags: - System summary: Получение документации description: Получение файла с документацией на этот сервис. operationId: file x-process-type: NOTRACE security: [] parameters: - $ref: '#/components/parameters/filename' responses: '200': description: Успешное выполнение content: text/html: schema: $ref: '#/components/schemas/file_html' text/plain: schema: $ref: '#/components/schemas/file_json' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '415': $ref: '#/components/responses/415' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '501': $ref: '#/components/responses/501' '502': $ref: '#/components/responses/502' '503': $ref: '#/components/responses/503' '504': $ref: '#/components/responses/504' default: $ref: '#/components/responses/503' components: securitySchemes: ApiKeyAuth: description: "Для [аутентификации](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication)\ \ клиента \nиспользуется [JWT токен](https://ru.wikipedia.org/wiki/JSON_Web_Token),\ \ \nкоторый необходимо указывать в заголовке для каждого запроса в формате:\n\ \n`Authorization: Bearer `.\n\nУникальный токен для пользовательского\ \ аккаунта необходимо получить с помощью VRt.Account API.\n" type: http scheme: bearer bearerFormat: JWT schemas: unique_key: description: Ключ, уникальный идентификатор. type: string format: uuid example: 11111111-2222-3333-4444-555555555555 filesystem_column_type: description: 'Название колонки в таблице с папками. ' type: string enum: - NAME - OWNER_COMPANY_KEY - OWNER_USERNAME - CREATION_DATE - EXPIRATION_DATE - FOLDERS_COUNT - FILES_COUNT default: NAME example: CREATION_DATE folder_type: description: "Тип элемента:\n * `ROOT` - корневой объект\n * `FOLDER` - папка\n" type: string enum: - ROOT - FOLDER example: FOLDER folder_parent_key: description: Ключ родительской папки, `null` если папка корневая. type: - string - 'null' format: uuid example: 11111111-2222-3333-4444-555555555555 folder_name: description: Название папки. type: string minLength: 1 maxLength: 100 example: folder_1 folder_comment: description: Комментарий к папке. type: - string - 'null' minLength: 0 maxLength: 10000 example: long long long long text folder_color: description: Цвет папки. type: - string - 'null' minLength: 1 maxLength: 20 example: red attribute: description: Атрибут. type: object additionalProperties: false properties: key: description: Ключ атрибута. type: string minLength: 1 maxLength: 100 example: code value: description: Значение атрибута. type: string minLength: 0 maxLength: 7000 example: X51 required: - key - value attributes: description: Атрибуты. Используются для указания служебной информации. type: array minItems: 0 maxItems: 250 uniqueItems: true default: [] items: $ref: '#/components/schemas/attribute' company_key_null: description: Уникальный идентификатор компании. type: - string - 'null' format: string pattern: \w+ minLength: 3 maxLength: 256 example: smart_company user_username_null: description: Уникальное имя пользователя для авторизации. type: - string - 'null' pattern: \w+ minLength: 2 maxLength: 256 example: username_for_login folder_expiration_date: description: 'Дата и время автоматического удаления в соответствии с [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6). Null означает что автоматическое удаление не происходит. ' type: - string - 'null' format: date-time example: '2025-11-21T19:45:00Z' folder_counters: description: 'Счетчики текущей папки. ' type: object additionalProperties: false properties: folders_count: description: Количество вложенных папок. type: integer format: int32 minimum: 0 maximum: 100000 example: 12 files_count: description: Количество вложенных файлов. type: integer format: int32 minimum: 0 maximum: 100000 example: 16 required: - folders_count - files_count folder: description: 'Папка - элемент виртуальной файловой системы. ' type: object additionalProperties: false properties: key: $ref: '#/components/schemas/unique_key' type: $ref: '#/components/schemas/folder_type' parent_key: $ref: '#/components/schemas/folder_parent_key' name: $ref: '#/components/schemas/folder_name' comment: $ref: '#/components/schemas/folder_comment' color: $ref: '#/components/schemas/folder_color' attributes: $ref: '#/components/schemas/attributes' owner_company_key: $ref: '#/components/schemas/company_key_null' owner_username: $ref: '#/components/schemas/user_username_null' description: Владелец папки, корневая папка системы не содержит владельца. creation_date: description: 'Дата и время создания в соответствии с [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6). ' type: - string - 'null' format: date-time example: '2025-11-21T19:45:00Z' expiration_date: $ref: '#/components/schemas/folder_expiration_date' counters: $ref: '#/components/schemas/folder_counters' required: - key - type - name - counters table_list_counters_detail: description: Детальные счетчики по списку. type: object additionalProperties: false properties: total: description: Количество. type: integer format: int32 minimum: 0 maximum: 100000 example: 1 required: - total table_list_counters: description: Счетчики по списку. type: object additionalProperties: false properties: overall: $ref: '#/components/schemas/table_list_counters_detail' description: Общая статистика, не зависит от фильтра. filter: $ref: '#/components/schemas/table_list_counters_detail' description: Статистика по отфильтрованным данным. required: - overall - filter filesystem: description: 'Виртуальная файловая система. ' type: object additionalProperties: false properties: current_folder: $ref: '#/components/schemas/folder' folders: description: Список папок. type: array uniqueItems: false minItems: 0 maxItems: 2001 items: $ref: '#/components/schemas/folder' counters: $ref: '#/components/schemas/table_list_counters' required: - current_folder - folders - counters process_code: description: 'Уникальный идентификатор процесса. Создается один на процесс, одинаковый для разных запросов по одному процессу. ' type: string format: uuid example: 11111111-2222-3333-4444-555555555555 request_code: description: 'Уникальный идентификатор запроса. Создается новый на каждый запрос. ' type: string format: uuid example: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee user_username: description: Уникальное имя пользователя для авторизации. type: string pattern: \w+ minLength: 2 maxLength: 256 example: username_for_login company_key: description: Уникальный идентификатор компании. type: string pattern: \w+ minLength: 3 maxLength: 256 example: smart_company service: description: Название сервиса. type: string enum: - UNIVERSAL - ROUTING - ACCOUNT - ADMIN - STUDIO - MONITOR - PACKER - AGRO - REGISTRY - SUPPORT example: UNIVERSAL operation: description: Наименование операции (запроса). type: string pattern: \w+ minLength: 3 maxLength: 256 example: run_plan_calculation tracedata: description: Данные используемые для трассировки запросов. type: object additionalProperties: false properties: process_code: $ref: '#/components/schemas/process_code' request_code: $ref: '#/components/schemas/request_code' username: $ref: '#/components/schemas/user_username' company: $ref: '#/components/schemas/company_key' service: $ref: '#/components/schemas/service' operation: $ref: '#/components/schemas/operation' env: description: Уникальный идентификатор окружения. type: string pattern: \S+ minLength: 2 maxLength: 256 example: edge7 pod: description: Уникальный идентификатор пода. type: string pattern: \S+ minLength: 2 maxLength: 256 example: 11111111-2222-3333-4444-555555555555 time: description: Дата и время вызова метода сервиса в соответствии с [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6). type: string format: date-time example: '2025-11-21T09:30:00+03:00' required: - process_code - request_code - username - company - service - operation - env - pod - time schema_error: description: Ошибка по схеме. type: object additionalProperties: false properties: entity: description: Идентификатор целевой сущности. type: - string - 'null' maxLength: 1024 example: order_0001 message: description: Сообщение об ошибке. type: string example: bad input data required: - entity - message schema_error_list: description: Список синтаксических ошибок - данные не удовлетворяют схеме. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/schema_error' general_400: description: Детализация по ошибке 400. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Сообщение об ошибке. type: - string - 'null' example: Bad Request schema_errors: $ref: '#/components/schemas/schema_error_list' required: - tracedata general_402: description: Детализация по ошибке 402. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Сообщение об ошибке. type: - string - 'null' example: Payment Required required: - tracedata general_403: description: Детализация по ошибке 403. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Сообщение об ошибке. type: - string - 'null' example: Forbidden required: - tracedata general_404_detail: description: Детализация по ресурсу. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' required: - tracedata nullable: description: Пустое значение. type: 'null' general_404: description: Детализация по ошибке 404. type: object additionalProperties: false properties: resource_key: description: Идентификатор ресурса. type: - string - 'null' example: resource_key_one detail: description: Детализация по ресурсу, если возможно. oneOf: - $ref: '#/components/schemas/general_404_detail' - $ref: '#/components/schemas/nullable' default: 'null' general_429: description: Детализация по ошибке 429. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Сообщение об ошибке. type: - string - 'null' example: Too many requests required: - tracedata general_500: description: Детализация по ошибке 500. type: object additionalProperties: false properties: tracedata: $ref: '#/components/schemas/tracedata' message: description: Сообщение об ошибке. type: - string - 'null' example: Internal Server Error required: - tracedata folder_specification: description: Информация о папке. type: object additionalProperties: false properties: parent_key: $ref: '#/components/schemas/folder_parent_key' name: $ref: '#/components/schemas/folder_name' comment: $ref: '#/components/schemas/folder_comment' color: $ref: '#/components/schemas/folder_color' expiration_date: $ref: '#/components/schemas/folder_expiration_date' attributes: $ref: '#/components/schemas/attributes' required: - name filesystem_path: description: 'Путь от файла/папки до корня виртуальной файловой системы. ' type: object additionalProperties: false properties: folders: description: Список папок. type: array uniqueItems: false minItems: 0 maxItems: 1000 items: $ref: '#/components/schemas/folder' required: - folders folder_name_list: description: Список названий папок от корня виртуальной файловой системы. type: array uniqueItems: false minItems: 0 maxItems: 10 items: $ref: '#/components/schemas/folder_name' unique_key_list: description: Список уникальных ключей. type: array uniqueItems: false minItems: 0 maxItems: 15001 items: $ref: '#/components/schemas/unique_key' file_name: description: Название файла. type: string minLength: 1 maxLength: 100 example: file_1 file_name_path: description: 'Путь от корня виртуальной файловой системы до файла в виде названий папок и файла. ' type: object additionalProperties: false properties: folder_names: $ref: '#/components/schemas/folder_name_list' file_name: $ref: '#/components/schemas/file_name' required: - folder_names - file_name filesystem_counters: description: 'Счетчики по всей виртуальной файловой системе. ' type: object additionalProperties: false properties: current: $ref: '#/components/schemas/folder_counters' description: Текущее количество доступных папок/файлов. max: $ref: '#/components/schemas/folder_counters' description: Максимальное количество доступных папок/файлов. required: - current - max file_zip: description: ZIP-архив с данными. type: string format: byte file_comment: description: Комментарий к файлу. type: - string - 'null' minLength: 0 maxLength: 10000 example: long long long long text file_specification: description: Спецификация файла. type: object additionalProperties: false properties: name: $ref: '#/components/schemas/file_name' comment: $ref: '#/components/schemas/file_comment' folder_key: description: Ключ папки типа `FOLDER`, в которой находится файл. $ref: '#/components/schemas/unique_key' required: - name - comment - folder_key configuration_content: description: Настройки в формате [JSON](https://www.json.org/). type: string minLength: 0 maxLength: 2000000 example: '{"long json"}' configuration_json_schema: description: Схема для валидации контента (настроек) в формате [JSON Schema](https://json-schema.org/). type: - string - 'null' minLength: 0 maxLength: 2000000 example: '{"$schema":"https://json-schema.org/draft/2020-12/schema", "type":"object", "additionalProperties":true}' file_edit_date: description: 'Дата и время последнего редактирования файла в соответствии с [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6). ' type: string format: date-time example: '2025-11-21T19:45:00Z' file_creation_date: description: 'Дата и время создания файла в соответствии с [ISO 8601](https://tools.ietf.org/html/rfc3339#section-5.6). ' type: string format: date-time example: '2025-11-21T19:45:00Z' configuration: description: Файл конфигурации. type: object additionalProperties: false properties: key: $ref: '#/components/schemas/unique_key' specification: $ref: '#/components/schemas/file_specification' content: $ref: '#/components/schemas/configuration_content' json_schema: $ref: '#/components/schemas/configuration_json_schema' edit_date: $ref: '#/components/schemas/file_edit_date' creation_date: $ref: '#/components/schemas/file_creation_date' required: - key - specification - content - json_schema - edit_date - creation_date table_configuration_column_type: description: "Название колонки в таблице с волнами:\n * `ESSENCE_KEY` - ключ\ \ конфигурации\n" type: string enum: - ESSENCE_KEY - CREATION_DATE - EDIT_DATE - SPECIFICATION_NAME - SPECIFICATION_COMMENT - SPECIFICATION_FOLDER_KEY default: SPECIFICATION_NAME example: SPECIFICATION_FOLDER_KEY table_configuration: description: Файл конфигурации (табличное представление). type: object additionalProperties: false readOnly: true properties: essence_key: $ref: '#/components/schemas/unique_key' specification: $ref: '#/components/schemas/file_specification' edit_date: $ref: '#/components/schemas/file_edit_date' creation_date: $ref: '#/components/schemas/file_creation_date' required: - essence_key - specification - edit_date - creation_date table_configuration_list: description: Список конфигураций (табличное представление). type: object additionalProperties: false properties: essences: description: Список конфигураций. type: array uniqueItems: false minItems: 0 maxItems: 2001 items: $ref: '#/components/schemas/table_configuration' counters: $ref: '#/components/schemas/table_list_counters' required: - essences - counters check_result: description: Результат проверки работоспособности сервиса. type: object additionalProperties: false properties: health: description: "Текущий показатель здоровья сервиса. \n * `0.0` означает\ \ неготовность сервиса выполнять задачи. \n * `1.0` означает полную\ \ готовность сервиса для выполнения задач.\n" type: number format: double minimum: 0 maximum: 1 example: 0.999 required: - health version_result: description: Версия сервиса. type: object additionalProperties: false properties: major: description: "Версия продукта.\nВ рамках одной версии гарантируется совместимость\ \ общих структур данных между сервисами. \nИзменение версии указывает\ \ на несовместимые с предыдущими версиями продукта (и, соответственно,\ \ всех сервисов) изменения.\n" type: integer format: int32 minimum: 1 maximum: 100 example: 7 minor: description: 'Минорная версия сервиса. Изменение версии указывает на новую функциональность. Обновление имеет обратную совместимость в рамках мажорной версии сервиса. ' type: integer format: int32 minimum: 0 maximum: 111 example: 15 build: description: "Версия сборки. \nИзменяется при обновлении документации\ \ и исправлении ошибок.\n" type: string minLength: 1 maxLength: 64 example: 3754RC required: - major - minor - build file_html: description: Файл с данными в формате [HTML](https://html.spec.whatwg.org/). type: string file_json: description: Файл с данными в формате [JSON](https://www.json.org/). type: string parameters: folder_key: name: folder_key description: Ключ папки, уникальный идентификатор. in: query required: false schema: $ref: '#/components/schemas/unique_key' filter: name: filter description: Фильтр для поиска по текстовым полям. in: query required: false schema: description: Фильтр для поиска по текстовым полям. type: string minLength: 1 maxLength: 64 example: example text offset: name: offset description: Количество пропущенных сущностей до возвращаемого списка. in: query required: false schema: description: Количество пропущенных сущностей до возвращаемого списка. type: integer format: int32 minimum: 0 maximum: 10000000 default: 0 example: 10 limit: name: limit description: Максимальное количество возвращаемых сущностей. in: query required: false schema: description: Максимальное количество возвращаемых сущностей. type: integer format: int32 minimum: 1 maximum: 2001 default: 100 example: 10 filesystem_column: name: sort_field description: 'Название колонки в таблице с папками. ' in: query required: false schema: $ref: '#/components/schemas/filesystem_column_type' sort_direction: name: sort_direction description: Направление сортировки. in: query required: false schema: description: Направление сортировки. type: string enum: - ASC - DESC default: ASC example: DESC folder_key-2: name: folder_key description: Ключ папки, уникальный идентификатор. in: path required: true schema: $ref: '#/components/schemas/unique_key' configuration_key: name: configuration_key description: Ключ, уникальный идентификатор. in: path required: true schema: $ref: '#/components/schemas/unique_key' table_configuration_column: name: sort_field description: 'Название колонки в таблице с конфигурациями. ' in: query required: false schema: $ref: '#/components/schemas/table_configuration_column_type' filter_required: name: filter description: Строка для поиска по текстовым полям. in: query required: true schema: description: Строка для поиска по текстовым полям. type: string minLength: 3 maxLength: 128 example: example text filename: name: filename description: Название файла. in: path required: true schema: description: Название файла. type: string minLength: 6 maxLength: 128 example: file_en.html responses: '400': description: Неверный запрос - входные данные содержат ошибки content: application/json: schema: $ref: '#/components/schemas/general_400' '401': description: Ошибка доступа - неверные реквизиты для авторизации, токен отсутствует или невалиден '402': description: Необходима оплата content: application/json: schema: $ref: '#/components/schemas/general_402' '403': description: Действие запрещено - уровень прав доступа не позволяет совершить данное действие content: application/json: schema: $ref: '#/components/schemas/general_403' '404': description: Запрашиваемая сущность не найдена content: application/json: schema: $ref: '#/components/schemas/general_404' '405': description: Метод запрещен для данного ресурса, проверьте указанный метод (POST, GET, ...) '406': description: Клиент не способен обработать формат ответа, проверьте заголовки '415': description: Неприемлемый формат запроса, проверьте заголовки '429': description: Превышено количество запросов content: application/json: schema: $ref: '#/components/schemas/general_429' '500': description: Внутренняя ошибка сервера content: application/json: schema: $ref: '#/components/schemas/general_500' '501': description: Функциональность не доступна для использования '502': description: Неверный шлюз '503': description: Сервис не доступен '504': description: Шлюз не отвечает examples: DataExplorer: summary: Пример виртуальной файловой системы value: folders: - key: 2bff0b86-2ddc-445c-9d98-f75ca2eec091 parent_key: 65fb88e5-128d-4f3f-9a50-4c2754adcbed name: My Folder owner_company_key: veeroute owner_username: username_1 comment: long text counters: folders_count: 0 files_count: 3 counters: overall: total: 20 filter: total: 1 Configuration: summary: Пример файла конфигурации value: key: da4e62b0-86cb-4423-b187-5c1a433ca703 specification: name: new-cfg-5 comment: just run it folder_key: 2bff0b86-2ddc-445c-9d98-f75ca2ee4091 content: '{}' json_schema: '{''$schema'': ''https://json-schema.org/draft/2020-12/schema''}' edit_date: '2025-11-15T13:56:07.728Z' creation_date: '2025-11-15T13:56:07.728Z' TableConfigurationList: summary: Список конфигурации (таблица) value: essences: - essence_key: da4e62b0-86cb-4423-b187-5c1a433ca703 specification: name: new-cfg-5 comment: just run it folder_key: 2bff0b86-2ddc-445c-9d98-f75ca2ee4091 edit_date: '2025-11-15T13:56:07.728Z' creation_date: '2025-11-15T13:56:07.728Z' counters: overall: total: 1 filter: total: 1 x-tagGroups: - name: Filesystem tags: - Explorer - Backups - name: Configuration Files tags: - Configurations - name: Maintenance tags: - System