Перейти к содержимому
СервисАпп API
На этой странице

Шаблоны работ и сценарии ТО

Все операции. Авторизация. Запросы и повторы.

Все пути в этом файле дополняют /api/v1 на домене организации.

Описание и ограничения

Назначение

Шаблон чек-листа, полей мастера и правил расчёта/обновления параметров оборудования.

Доступные возможности и ограничения

Реализованы список и карточка, создание, изменение, архивация, симуляция, экспорт и импорт. Доступ к API — «Энтерпрайз», «Энтерпрайз Про» или действующий пробный период; «Энтерпрайз Лайт» не включает API.

Для GET нужны maintenance_scenarios:read, «ТОиР — Обслуживание → Просмотр» и текущий доступ к ТОИР. Для POST нужны maintenance_scenarios:write, права просмотра/изменения ТО и обязательный Idempotency-Key. Изменение, архивация и симуляция требуют If-Resource-Version сценария. Создание и импорт создают новую запись и не принимают условную версию.

data.version — строка Unix-секунд из updated_at. Два изменения в одну секунду могут иметь одинаковую версию. Для проверки изменений используйте правила синхронизации. Карточка также возвращает отдельный ETag своего представления. Изменения типов оборудования, пунктов и определений полей обновляют также версию сценария.

Поля и назначение

Публичное поле Формат и смысл Доступ
id, name, key id, название, стабильный код только чтение / чтение и запись
description, is_active описание и доступность чтение и запись
equipment_state_key разрешённый ключ состояния чтение и запись
calculation_rules структура правил по схеме движка чтение и запись
device_type_ids разрешённые типы оборудования чтение и запись
custom_fields ссылки на определения полей только чтение

Обязательность и null указаны в схемах каждой операции ниже.

Доступ и выборка

maintenance_scenarios:read/write, «ТОиР — Обслуживание → Просмотр, Изменение» и тариф; права создания полей учитываются отдельно.

Фильтры: q, key, is_active, device_type_id.

Правила и связи

  • Допустимы только действия и поля, перечисленные в схеме правил. Произвольный программный код не выполняется.
  • Изменение шаблона не переписывает сохранённый снимок сценария и результаты начатой заявки.
  • Зарезервированные коды полей не могут быть переопределены.

Форматы команд

Создание принимает name, key и необязательные description, is_active, equipment_state_key, calculation_rules, device_type_ids. Имя ограничено 255 символами; код и ключ состояния — 191 символом, содержат строчные латинские буквы, цифры, дефис или подчёркивание и начинаются с буквы. Ключ состояния по умолчанию равен коду. Новый сценарий активен, без правил и привязанных типов. /update принимает тот же явный набор полей частично. Неизвестные поля, строковые ID и строковые boolean отклоняются. Создание возвращает 201, изменение — 200; конфликт кода — 409.

/archive принимает {} и устанавливает is_active=false. Сценарий, его поля, сохранённые снимки и результаты не удаляются. При первом переходе в архив публикуется maintenance_scenario.archived; прочее фактическое изменение — maintenance_scenario.updated. Запрос без изменений не меняет маркер и не создаёт событий.

calculation_rules — список не более 100 правил. Правило содержит when и/или визуальное when_json, а также do: одно действие или список до 20 действий. Используются только зарегистрированные действия штатного движка: set_today, set_relative_date, set_value, increment, compute. Выражения проверяются движком, ограничены 500 символами; неизвестные действия и поля структуры отклоняются. target — ключ карты состояния, а не путь записи в модель. JSON-условия принимают ограниченные группы and/or и поддерживаемые движком операторы; глубина ограничена восемью уровнями.

Симуляция

POST /maintenance-scenarios/{id}/simulate принимает необязательные fields, state, equipment, customer (плоские JSON-объекты со скалярными значениями), today (Y-m-d) и days_since_last_maintenance. Это демонстрационный контекст: реальные записи оборудования и клиентов не загружаются. Можно проверить правила над переданными примерами без доступа к приватным данным других ресурсов.

Экспорт и импорт

  • Имена типов и работ должны однозначно определять доступную запись. Отсутствующие, недоступные и неоднозначные ссылки отклоняют весь импорт. Каталог автоматически не пополняется.
  • Если пакет создаёт определения полей, дополнительно нужны custom_fields:write и «Системные настройки → Информация о компании»; без них импорт полностью отклоняется. Зарезервированные и повторяющиеся коды полей запрещены.
  • Допускается не более 100 полей, 100 вариантов на поле и 100 пунктов чек-листа. Значение варианта "0" сохраняется. Ручной пункт требует непустого описания.
  • Если необязательная контрольная сумма пакета fingerprint не совпадает, после проверки схемы и ссылок возвращается предупреждение SCENARIO_IMPORT_WARNING. Это поле не является версией ресурса.
  • Сценарий, определения полей, варианты и пункты чек-листа создаются вместе с результатом операции и событиями. Ошибка любого элемента отменяет весь импорт.

Операции

Метод Путь Назначение
GET /maintenance-scenarios Список с фильтрами и пагинацией
POST /maintenance-scenarios Создание
GET /maintenance-scenarios/{id} Карточка
POST /maintenance-scenarios/import Проверяемый импорт шаблона
POST /maintenance-scenarios/{id}/update Изменение разрешённых полей
POST /maintenance-scenarios/{id}/archive Архивация или удаление с проверкой зависимостей
POST /maintenance-scenarios/{id}/simulate Проверка расчётных правил без изменения оборудования
GET /maintenance-scenarios/{id}/export Экспорт схемы шаблона

GET /maintenance-scenarios

Список с фильтрами и пагинацией.

Доступ. Разрешения подключения: maintenance_scenarios:read. Права сотрудника: «ТОиР — Обслуживание → Просмотр». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.

Параметры

Имя Где Тип Обязательно null Ограничения
Authorization заголовок строка да нет Bearer <SERVICEAPP_TOKEN>
sort параметр запроса строка нет нет Допустимо: "id", "-id"
page[size] параметр запроса целое число нет нет ≥ 1; ≤ 100
page[cursor] параметр запроса строка нет нет не более 8192 символов
filter[q] параметр запроса строка нет нет не более 200 символов
filter[key] параметр запроса строка нет нет не более 255 символов
filter[is_active] параметр запроса строка нет нет Допустимо: "true", "false"
filter[device_type_id] параметр запроса целое число нет нет ≥ 1

Ответы

HTTP Назначение и схема
200 Успех. Полная схема и пример
401 Требуется действующий Bearer. Коды и формат ошибки
403 Недостаточно допуска. Коды и формат ошибки
409 Конфликт состояния или повтора. Коды и формат ошибки
422 Ошибка входных данных. Коды и формат ошибки
429 Лимит запросов, Retry-After. Коды и формат ошибки
503 Временно недоступно. Коды и формат ошибки

Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.

Пример запроса

Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.

curl --silent --show-error --globoff \
  "$API/maintenance-scenarios" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json"

POST /maintenance-scenarios

Создание.

Доступ. Разрешения подключения: maintenance_scenarios:write. Права сотрудника: «ТОиР — Обслуживание → Изменение». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.

Параметры

Имя Где Тип Обязательно null Ограничения
Authorization заголовок строка да нет Bearer <SERVICEAPP_TOKEN>
Idempotency-Key заголовок строка да нет не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._:-]+$

Тело запроса

Content-Type: application/json. Тело обязательно.

Поле Тип Обязательно null Ограничения и смысл
name строка да нет не более 255 символов
key строка да нет не более 191 символов; Шаблон: ^[a-z][a-z0-9_-]*$
description строка / null нет да не более 10000 символов
is_active логическое значение нет нет —
equipment_state_key строка нет нет не более 191 символов; Шаблон: ^[a-z][a-z0-9_-]*$
calculation_rules массив / null нет да не более 100 элементов
calculation_rules[] объект да нет —
device_type_ids массив нет нет не более 100 элементов; Без повторов
device_type_ids[] целое число да нет ≥ 1

Ответы

HTTP Назначение и схема
201 Создано. Полная схема и пример
401 Требуется действующий Bearer. Коды и формат ошибки
403 Недостаточно допуска. Коды и формат ошибки
404 Не найдено или недоступно. Коды и формат ошибки
409 Конфликт состояния или повтора. Коды и формат ошибки
422 Ошибка входных данных. Коды и формат ошибки
429 Лимит запросов, Retry-After. Коды и формат ошибки
503 Временно недоступно. Коды и формат ошибки
HTTP Заголовок ответа Тип Описание
201 Location строка

Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.

У принятого POST Location и meta.operation_id указывают на журнал операции; ETag отсутствует. При повторе запроса сохраняются исходные data/meta, добавляется Idempotency-Replayed: true. Версии передавайте по назначению, указанному в описании ресурса.

Пример запроса

Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.

curl --silent --show-error --globoff --request POST \
  "$API/maintenance-scenarios" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-scenarios-create:001" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-scenarios.create.json'

GET /maintenance-scenarios/{id}

Карточка.

Доступ. Разрешения подключения: maintenance_scenarios:read. Права сотрудника: «ТОиР — Обслуживание → Просмотр». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.

Параметры

Имя Где Тип Обязательно null Ограничения
Authorization заголовок строка да нет Bearer <SERVICEAPP_TOKEN>
id путь строка да нет Шаблон: ^(?:[0-9]+)$
If-None-Match заголовок строка нет нет —

Ответы

HTTP Назначение и схема
200 Успех. Полная схема и пример
304 Представление не изменилось, без тела. Условный GET
401 Требуется действующий Bearer. Коды и формат ошибки
403 Недостаточно допуска. Коды и формат ошибки
404 Не найдено или недоступно. Коды и формат ошибки
422 Ошибка входных данных. Коды и формат ошибки
429 Лимит запросов, Retry-After. Коды и формат ошибки
503 Временно недоступно. Коды и формат ошибки
HTTP Заголовок ответа Тип Описание
200 ETag строка
304 ETag строка

Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.

Пример запроса

Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.

curl --silent --show-error --globoff \
  "$API/maintenance-scenarios/101" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json"

POST /maintenance-scenarios/import

Проверяемый импорт шаблона.

Доступ. Разрешения подключения: maintenance_scenarios:write. Права сотрудника: «ТОиР — Обслуживание → Изменение». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.

Параметры

Имя Где Тип Обязательно null Ограничения
Authorization заголовок строка да нет Bearer <SERVICEAPP_TOKEN>
Idempotency-Key заголовок строка да нет не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._:-]+$

Тело запроса

Content-Type: application/json. Тело обязательно.

Поле Тип Обязательно null Ограничения и смысл
format_version целое число да нет Допустимо: 1
exported_at строка нет нет не более 100 символов
fingerprint строка нет нет не более 100 символов
scenario объект да нет Только перечисленные ключи
scenario.name строка да нет не более 255 символов
scenario.key строка да нет не более 191 символов; Шаблон: ^[a-z][a-z0-9_-]*$
scenario.description строка / null нет да не более 10000 символов
scenario.is_active логическое значение нет нет —
scenario.equipment_state_key строка нет нет не более 191 символов; Шаблон: ^[a-z][a-z0-9_-]*$
scenario.calculation_rules массив / null нет да не более 100 элементов
scenario.calculation_rules[] объект да нет —
scenario.device_type_names массив нет нет не более 100 элементов; Без повторов
scenario.device_type_names[] строка да нет не более 255 символов
scenario.custom_fields массив нет нет не более 100 элементов
scenario.custom_fields[] объект да нет Только перечисленные ключи
scenario.custom_fields[].name строка да нет не более 255 символов
scenario.custom_fields[].code строка да нет не более 191 символов; Шаблон: ^[a-z][a-z0-9_]*$; Запрещено: {"enum": ["today", "state", "equipment", "customer", "days_since_last_maintenance"]}
scenario.custom_fields[].type строка да нет Допустимо: "text", "textarea", "richtext", "number", "money", "phone", "select", "multiselect", "date", "datetime", "toggle", "url", "email", "radio", "checkbox_list"
scenario.custom_fields[].is_required логическое значение нет нет —
scenario.custom_fields[].is_active логическое значение нет нет —
scenario.custom_fields[].sort_order целое число нет нет ≥ 0; ≤ 2147483647
scenario.custom_fields[].options массив / null нет да не более 100 элементов
scenario.custom_fields[].field_options массив нет нет не более 100 элементов
scenario.custom_fields[].field_options[] объект да нет Только перечисленные ключи
scenario.custom_fields[].field_options[].value строка да нет не более 255 символов
scenario.custom_fields[].field_options[].label строка да нет не более 255 символов
scenario.custom_fields[].field_options[].sort_order целое число нет нет ≥ 0; ≤ 2147483647
scenario.checklist_items массив нет нет не более 100 элементов
scenario.checklist_items[] объект да нет Только перечисленные ключи
scenario.checklist_items[].operation_name строка / null нет да не более 255 символов
scenario.checklist_items[].description строка / null нет да не более 10000 символов
scenario.checklist_items[].sort_order целое число нет нет ≥ 0; ≤ 4294967295
scenario.checklist_items[].is_required логическое значение нет нет —
scenario.checklist_items[].is_active логическое значение нет нет —

Ответы

HTTP Назначение и схема
201 Создано. Полная схема и пример
401 Требуется действующий Bearer. Коды и формат ошибки
403 Недостаточно допуска. Коды и формат ошибки
404 Не найдено или недоступно. Коды и формат ошибки
409 Конфликт состояния или повтора. Коды и формат ошибки
422 Ошибка входных данных. Коды и формат ошибки
429 Лимит запросов, Retry-After. Коды и формат ошибки
503 Временно недоступно. Коды и формат ошибки
HTTP Заголовок ответа Тип Описание
201 Location строка

Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.

У принятого POST Location и meta.operation_id указывают на журнал операции; ETag отсутствует. При повторе запроса сохраняются исходные data/meta, добавляется Idempotency-Replayed: true. Версии передавайте по назначению, указанному в описании ресурса.

Пример запроса

Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.

curl --silent --show-error --globoff --request POST \
  "$API/maintenance-scenarios/import" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-scenarios-import:001" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-scenarios.import.json'

POST /maintenance-scenarios/{id}/update

Изменение разрешённых полей.

Доступ. Разрешения подключения: maintenance_scenarios:write. Права сотрудника: «ТОиР — Обслуживание → Изменение». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.

Параметры

Имя Где Тип Обязательно null Ограничения
Authorization заголовок строка да нет Bearer <SERVICEAPP_TOKEN>
id путь строка да нет Шаблон: ^(?:[0-9]+)$
Idempotency-Key заголовок строка да нет не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._:-]+$
If-Resource-Version заголовок строка да нет не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._~-]+$

Тело запроса

Content-Type: application/json. Тело обязательно.

Поле Тип Обязательно null Ограничения и смысл
name строка нет нет не более 255 символов
key строка нет нет не более 191 символов; Шаблон: ^[a-z][a-z0-9_-]*$
description строка / null нет да не более 10000 символов
is_active логическое значение нет нет —
equipment_state_key строка нет нет не более 191 символов; Шаблон: ^[a-z][a-z0-9_-]*$
calculation_rules массив / null нет да не более 100 элементов
calculation_rules[] объект да нет —
device_type_ids массив нет нет не более 100 элементов; Без повторов
device_type_ids[] целое число да нет ≥ 1

Ответы

HTTP Назначение и схема
200 Успех. Полная схема и пример
401 Требуется действующий Bearer. Коды и формат ошибки
403 Недостаточно допуска. Коды и формат ошибки
404 Не найдено или недоступно. Коды и формат ошибки
409 Конфликт состояния или повтора. Коды и формат ошибки
412 Версия устарела. Коды и формат ошибки
422 Ошибка входных данных. Коды и формат ошибки
428 Нужно предусловие версии. Коды и формат ошибки
429 Лимит запросов, Retry-After. Коды и формат ошибки
503 Временно недоступно. Коды и формат ошибки
HTTP Заголовок ответа Тип Описание
200 Location строка

Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.

У принятого POST Location и meta.operation_id указывают на журнал операции; ETag отсутствует. При повторе запроса сохраняются исходные data/meta, добавляется Idempotency-Replayed: true. Версии передавайте по назначению, указанному в описании ресурса.

Пример запроса

Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.

curl --silent --show-error --globoff --request POST \
  "$API/maintenance-scenarios/101/update" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-scenarios-update:001" \
  --header "If-Resource-Version: $RESOURCE_VERSION" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-scenarios.update.json'

POST /maintenance-scenarios/{id}/archive

Архивация или удаление с проверкой зависимостей.

Доступ. Разрешения подключения: maintenance_scenarios:write. Права сотрудника: «ТОиР — Обслуживание → Изменение». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.

Параметры

Имя Где Тип Обязательно null Ограничения
Authorization заголовок строка да нет Bearer <SERVICEAPP_TOKEN>
id путь строка да нет Шаблон: ^(?:[0-9]+)$
Idempotency-Key заголовок строка да нет не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._:-]+$
If-Resource-Version заголовок строка да нет не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._~-]+$

Тело запроса

Content-Type: application/json. Тело обязательно.

Тело — пустой JSON-объект {}. Другие ключи не принимаются.

Ответы

HTTP Назначение и схема
200 Успех. Полная схема и пример
401 Требуется действующий Bearer. Коды и формат ошибки
403 Недостаточно допуска. Коды и формат ошибки
404 Не найдено или недоступно. Коды и формат ошибки
409 Конфликт состояния или повтора. Коды и формат ошибки
412 Версия устарела. Коды и формат ошибки
422 Ошибка входных данных. Коды и формат ошибки
428 Нужно предусловие версии. Коды и формат ошибки
429 Лимит запросов, Retry-After. Коды и формат ошибки
503 Временно недоступно. Коды и формат ошибки
HTTP Заголовок ответа Тип Описание
200 Location строка

Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.

У принятого POST Location и meta.operation_id указывают на журнал операции; ETag отсутствует. При повторе запроса сохраняются исходные data/meta, добавляется Idempotency-Replayed: true. Версии передавайте по назначению, указанному в описании ресурса.

Пример запроса

Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.

curl --silent --show-error --globoff --request POST \
  "$API/maintenance-scenarios/101/archive" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-scenarios-archive:001" \
  --header "If-Resource-Version: $RESOURCE_VERSION" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-scenarios.archive.json'

POST /maintenance-scenarios/{id}/simulate

Проверка расчётных правил без изменения оборудования.

Доступ. Разрешения подключения: maintenance_scenarios:write. Права сотрудника: «ТОиР — Обслуживание → Изменение». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.

Параметры

Имя Где Тип Обязательно null Ограничения
Authorization заголовок строка да нет Bearer <SERVICEAPP_TOKEN>
id путь строка да нет Шаблон: ^(?:[0-9]+)$
Idempotency-Key заголовок строка да нет не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._:-]+$
If-Resource-Version заголовок строка да нет не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._~-]+$

Тело запроса

Content-Type: application/json. Тело обязательно.

Поле Тип Обязательно null Ограничения и смысл
fields объект нет нет Демонстрационные данные для проверки правил. Допустимые поля equipment и customer перечислены в описании сценариев.
fields.{ключ} строка / число / логическое значение / null нет да —
state объект нет нет Демонстрационные данные для проверки правил. Допустимые поля equipment и customer перечислены в описании сценариев.
state.{ключ} строка / число / логическое значение / null нет да —
equipment объект нет нет Демонстрационные данные для проверки правил. Допустимые поля equipment и customer перечислены в описании сценариев.
equipment.{ключ} строка / число / логическое значение / null нет да —
customer объект нет нет Демонстрационные данные для проверки правил. Допустимые поля equipment и customer перечислены в описании сценариев.
customer.{ключ} строка / число / логическое значение / null нет да —
today строка (дата) нет нет —
days_since_last_maintenance целое число / null нет да ≥ 0; ≤ 365000

Ответы

HTTP Назначение и схема
200 Успех. Полная схема и пример
401 Требуется действующий Bearer. Коды и формат ошибки
403 Недостаточно допуска. Коды и формат ошибки
404 Не найдено или недоступно. Коды и формат ошибки
409 Конфликт состояния или повтора. Коды и формат ошибки
412 Версия устарела. Коды и формат ошибки
422 Ошибка входных данных. Коды и формат ошибки
428 Нужно предусловие версии. Коды и формат ошибки
429 Лимит запросов, Retry-After. Коды и формат ошибки
503 Временно недоступно. Коды и формат ошибки
HTTP Заголовок ответа Тип Описание
200 Location строка

Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.

У принятого POST Location и meta.operation_id указывают на журнал операции; ETag отсутствует. При повторе запроса сохраняются исходные data/meta, добавляется Idempotency-Replayed: true. Версии передавайте по назначению, указанному в описании ресурса.

Пример запроса

Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.

curl --silent --show-error --globoff --request POST \
  "$API/maintenance-scenarios/101/simulate" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-scenarios-simulate:001" \
  --header "If-Resource-Version: $RESOURCE_VERSION" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-scenarios.simulate.json'

GET /maintenance-scenarios/{id}/export

Экспорт схемы шаблона.

Доступ. Разрешения подключения: maintenance_scenarios:read. Права сотрудника: «ТОиР — Обслуживание → Просмотр». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.

Параметры

Имя Где Тип Обязательно null Ограничения
Authorization заголовок строка да нет Bearer <SERVICEAPP_TOKEN>
id путь строка да нет Шаблон: ^(?:[0-9]+)$
If-None-Match заголовок строка нет нет —

Ответы

HTTP Назначение и схема
200 Успех. Полная схема и пример
304 Представление не изменилось, без тела. Условный GET
401 Требуется действующий Bearer. Коды и формат ошибки
403 Недостаточно допуска. Коды и формат ошибки
404 Не найдено или недоступно. Коды и формат ошибки
422 Ошибка входных данных. Коды и формат ошибки
429 Лимит запросов, Retry-After. Коды и формат ошибки
503 Временно недоступно. Коды и формат ошибки
HTTP Заголовок ответа Тип Описание
200 ETag строка
304 ETag строка

Каждый ответ содержит новый X-Request-Id в заголовке. Общие транспортные отказы и правила повтора действуют также при отказе до контроллера; см. ошибки.

Пример запроса

Запускается из каталога комплекта после настройки переменных в быстром старте. Замените демонстрационные идентификаторы 101 и UUID идентификаторами доступных записей. $RESOURCE_VERSION берётся из GET владельца версии, описанного выше. Для нового действия сохраните новый ключ; для повтора используйте прежний.

curl --silent --show-error --globoff \
  "$API/maintenance-scenarios/101/export" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json"