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

Заявки ТО

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

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

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

Назначение

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

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

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

Нужны maintenance_schedules:read, «ТОиР — Обслуживание → Просмотр», доступ к ТОиР и разрешённая мастерская. Дополнительные поля возвращаются с учётом сценария. Календарные даты сохраняют исходный день. GET только читает данные и не создаёт чек-лист, акт, заявку или выезд.

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

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

Публичное поле Формат и смысл Доступ
id, equipment_id id и обязательная единица только чтение / при создании
title, description, type, priority описание, preventive/corrective и важность чтение и запись
planned_date, deadline_at календарная дата и отдельный точный срок чтение и запись
assigned_user_id ответственный сотрудник чтение и запись
scenario_id, service_contract_id, workshop_id проверенные связи чтение и запись
status, completed_date, result статус и результат выполнения только чтение / отдельная команда
act_id, visit_id, maintenance_plan_id связанные доменные объекты только чтение
custom_fields типизированные значения полей мастера отдельная команда

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

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

maintenance_schedules:read/write и «ТОиР — Обслуживание → Просмотр, Изменение»; create-act/plan-visit требуют также acts:write, нужного тарифа и доступа ко всем единицам.

Создание необязательного выезда в plan-visit дополнительно требует visits:write. Его отсутствие не разрешает создать выезд побочным эффектом.

Фильтры: equipment_id, customer_id, customer_site_id через оборудование, workshop_id, assigned_user_id, status, act_id, visit_id, planned_from/to, overdue.

Схемы команд заявки

Для создания требуются equipment_id, title (1–255) и planned_date. Значения по умолчанию: type=preventive, priority=medium, assigned_user_id=null, scenario_id=null, service_contract_id=null, deadline_at=null, status=planned. Мастерская выбирается явно либо однозначно по разрешённым связям; при неоднозначности 422 WORKSHOP_REQUIRED. Сервер подготавливает чек-лист/сохранённый снимок при создании. Изменение принимает RW-поля и If-Resource-Version, сохраняя отсутствующие; начатой заявке нельзя менять сценарий.

Команда JSON Ответ
start {} 200, карточка со статусом in_progress
reschedule обязательная planned_date; необязательный assigned_user_id (id/null) 200, карточка; отсутствие ответственного сохраняет назначение
execution хотя бы одно из result (строка до 10000/null), custom_fields, checklist (схема ниже) 200, сохранённый прогресс, без закрытия
complete необязательный result (строка до 10000/null); отсутствие сохраняет прежний 200, завершённая карточка; обязательные данные проверяются по сохранённому состоянию
cancel обязательная reason (1–2000) 200, отменённая карточка; причина в аудите/результате доменной отмены
reopen обязательная reason (1–2000) 200, возврат выполненной заявки с согласованием истории оборудования; отменённая заявка — 409 MAINTENANCE_STATE_CONFLICT
create-act {} 201 с карточкой нового акта либо 200 существующего

Все команды карточки требуют If-Resource-Version заявки. Повтор запроса проверяет текущие права, тариф и мастерскую. Завершение требует «ТОиР — Обслуживание → Изменение»; наличие оборудования в meta.affected_resources само по себе не требует «ТОиР — Оборудование → Просмотр». Для первоначального выбора оборудования при создании нужно право его чтения. Отменённая заявка не возвращается в работу — создайте новую. Причина возврата в работу сохраняется в истории. Следующая заявка наследует мастерскую исходной. Поле checklist команды execution — массив вида { "id": 41, "version": 2, "is_completed": true, "note": null }, не более 100 различных пунктов этой заявки. id и version обязательны; нужно хотя бы одно из полей is_completed или note. Отсутствующие пункты и поля сохраняются, [] ничего не меняет. Все версии пунктов и дополнительные поля проверяются до записи; один конфликт возвращает 412 и отменяет весь запрос. Для полной замены состояния передайте каждый пункт, включая is_completed=false.

Групповая plan-visit

Запрос содержит customer_id, workshop_id, planned_date и ровно один массив equipment_ids или maintenance_schedule_ids (1–100 уникальных ID). Для каждого выбранного объекта обязателен expected_versions по правилам версий. Режим equipment_ids создаёт заявки для выбранного парка , режим maintenance_schedule_ids использует существующие ; смешивать режимы нельзя. Если у единицы уже есть подходящая открытая заявка, режим equipment_ids возвращает 409 OPEN_MAINTENANCE_EXISTS с доступными refs: клиент явно выбирает заявки для второго режима.

Необязательны customer_site_id=null, service_contract_id=null, billing_mode (billable по умолчанию, либо covered), visit (null по умолчанию). Covered требует действующий договор, покрывающий весь состав и дату; billable не принимает service_contract_id, чтобы не создать двойную оплату. выезд — объект из необязательных starts_at/ends_at/crew_user_ids, address, latitude/longitude, note, planning_duration_minutes и клиентского окна по visits. Пустой объект создаёт черновой выезд; null не создаёт Visit. Время задаётся парой вместе с непустой бригадой. Адрес/объект и состав проверяются по одному клиенту/объекту; более 100 единиц — 422, без частичной обработки.

workshop_id обязателен. Сервер использует указанную мастерскую и не заменяет её мастерской сотрудника или бригады. Мастерская существующих заявок должна совпадать с ней; несогласованный состав возвращает 422 WORKSHOP_MISMATCH. Для выбранной мастерской проверяются доступ, модуль ТОиР, договор и принадлежность бригады.

Если задан visit.starts_at, его календарный день после перевода в context.timezone должен совпадать с planned_date; иначе 422 PLANNED_DATE_MISMATCH. Нельзя передавать полуночь planned_date вместо времени начала. Без запланированного выезда planned_date остаётся календарной датой. planning_duration_minutes и клиентское окно сохраняются через общий доменный путь в той же транзакции.

Ответ 201: data содержит act_id, visit_id (id/null), maintenance_schedule_ids, equipment_ids; meta.affected_resources возвращает версии всего созданного/привязанного состава. Акт, заявки, чек-листы, складские эффекты и необязательный выезд сохраняются атомарно. Ошибка одной единицы откатывает весь запрос. Повтор возвращает исходные IDs, не создаёт второй акт.

Создание акта использует штатные сервисы ТО, но до сохранения применяет общие API-проверки нового акта: доступного начального статуса, клиента, ответственного, мастерской и активного склада. Обязательные пользовательские поля проверяются в той же транзакции. create-act не возвращает ошибочно связанный ремонтный акт или акт другого клиента/мастерской как существующий акт ТО. Архивная работа в новом платном составе даёт 409 RESOURCE_ARCHIVED с полным откатом.

Назначенный сотрудник получает уведомление в панели. Оно сохраняется вместе с результатом команды; при ошибке изменения не применяются, повтор запроса не создаёт уведомление заново.

Для выезда с заданным временем сохраняются задания на уведомление через подключённые клиентские боты. Ответ 201 подтверждает сохранение плана и заданий, но не доставку сообщений. Повтор запроса возвращает прежние идентификаторы и не создаёт повторных уведомлений.

Перед отправкой проверяются текущие права подключения и сотрудника, клиент, оборудование, время выезда и получатель. После утраты доступа, смены клиента, переноса выезда или смены получателя устаревшее уведомление отменяется. Если результат отправки неизвестен, автоматический повтор прекращается. Состояние доставки можно проверить в журнале сообщений панели.

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

  • Заявка не равна акту ТО и не равна выезду: несколько заявок могут исполняться в одном акт, выезд необязателен.
  • complete одной заявки и status акта имеют разный охват; API возвращает IDs всех изменённых объектов.
  • Обязательные чек-листы/поля проверяются до завершения; сценарий и оборудование обновляются по сохранённый снимок.
  • GET только читает данные: не создаёт чек-лист, акт или выезд и не выполняет заявку.

Операции

Метод Путь Назначение
GET /maintenance-schedules Список с фильтрами и пагинацией
POST /maintenance-schedules Создание
GET /maintenance-schedules/{id} Карточка
POST /maintenance-schedules/plan-visit Общий акт ТО и необязательный выезд для выбранного парка/заявок
POST /maintenance-schedules/{id}/create-act Создание или получение связанного акта ТО
POST /maintenance-schedules/{id}/update Изменение разрешённых полей
POST /maintenance-schedules/{id}/start Начало выполнения
POST /maintenance-schedules/{id}/reschedule Изменение даты и ответственного
POST /maintenance-schedules/{id}/execution Сохранение прогресса, результата и типизированных полей
POST /maintenance-schedules/{id}/complete Завершение только этой заявки
POST /maintenance-schedules/{id}/cancel Отмена заявки с причиной
POST /maintenance-schedules/{id}/reopen Возврат заявки в работу

GET /maintenance-schedules

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

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

Параметры

Имя Где Тип Обязательно null Ограничения
Authorization заголовок строка да нет Bearer <SERVICEAPP_TOKEN>
sort параметр запроса строка нет нет Допустимо: "id", "-id"
page[size] параметр запроса целое число нет нет ≥ 1; ≤ 100
page[cursor] параметр запроса строка нет нет не более 8192 символов
filter[equipment_id] параметр запроса целое число нет нет ≥ 1
filter[customer_id] параметр запроса целое число нет нет ≥ 1
filter[customer_site_id] параметр запроса целое число нет нет ≥ 1
filter[workshop_id] параметр запроса целое число нет нет ≥ 1
filter[assigned_user_id] параметр запроса целое число нет нет ≥ 1
filter[status] параметр запроса строка нет нет Допустимо: "planned", "in_progress", "completed", "overdue", "cancelled"
filter[act_id] параметр запроса целое число нет нет ≥ 1
filter[visit_id] параметр запроса целое число нет нет ≥ 1
filter[planned_from] параметр запроса строка (дата) нет нет —
filter[planned_to] параметр запроса строка (дата) нет нет —
filter[overdue] параметр запроса строка нет нет Допустимо: "true", "false"

Ответы

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-schedules" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json"

POST /maintenance-schedules

Создание.

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

Параметры

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

Тело запроса

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

Поле Тип Обязательно null Ограничения и смысл
title строка да нет не более 255 символов
planned_date строка (дата) да нет —
description строка / null нет да не более 10000 символов
assigned_user_id целое число / null нет да ≥ 1
scenario_id целое число / null нет да ≥ 1
service_contract_id целое число / null нет да ≥ 1
workshop_id целое число нет нет ≥ 1
type строка нет нет Допустимо: "preventive", "corrective"
priority строка нет нет Допустимо: "low", "medium", "high", "critical"
deadline_at строка / null (дата и время) нет да не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:Z|[+-]\d{2}:\d{2})$
equipment_id целое число да нет ≥ 1

Ответы

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

Каждый ответ содержит новый 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-schedules" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-schedules-store:001" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-schedules.store.json'

GET /maintenance-schedules/{id}

Карточка.

Доступ. Разрешения подключения: maintenance_schedules: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-schedules/101" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json"

POST /maintenance-schedules/plan-visit

Общий акт ТО и необязательный выезд для выбранного парка/заявок.

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

Параметры

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

Тело запроса

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

Поле Тип Обязательно null Ограничения и смысл
customer_id целое число да нет ≥ 1
workshop_id целое число да нет ≥ 1
planned_date строка (дата) да нет —
equipment_ids массив нет нет не менее 1 элементов; не более 100 элементов; Без повторов
equipment_ids[] целое число да нет ≥ 1
maintenance_schedule_ids массив нет нет не менее 1 элементов; не более 100 элементов; Без повторов
maintenance_schedule_ids[] целое число да нет ≥ 1
expected_versions массив да нет не менее 1 элементов; не более 100 элементов; Без повторов
expected_versions[] объект да нет Только перечисленные ключи
expected_versions[].type строка да нет Допустимо: "equipment", "maintenance-schedules"
expected_versions[].id целое число да нет ≥ 1
expected_versions[].version строка да нет не более 128 символов; Шаблон: ^[0-9]+$
customer_site_id целое число / null нет да ≥ 1
service_contract_id целое число / null нет да ≥ 1
billing_mode строка нет нет Допустимо: "billable", "covered"
visit объект / null нет да Только перечисленные ключи
visit.starts_at строка (дата и время) нет нет не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:Z|[+-]\d{2}:\d{2})$
visit.ends_at строка (дата и время) нет нет не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:Z|[+-]\d{2}:\d{2})$
visit.crew_user_ids массив нет нет не менее 1 элементов; не более 100 элементов; Без повторов
visit.crew_user_ids[] целое число да нет ≥ 1
visit.address строка / null нет да не более 2000 символов
visit.note строка / null нет да не более 10000 символов
visit.latitude число / null нет да ≥ -90.0; ≤ 90.0
visit.longitude число / null нет да ≥ -180.0; ≤ 180.0
visit.planning_duration_minutes целое число нет нет ≥ 15; ≤ 10080
visit.client_window_start_at строка / null (дата и время) нет да не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:Z|[+-]\d{2}:\d{2})$
visit.client_window_end_at строка / null (дата и время) нет да не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:Z|[+-]\d{2}:\d{2})$

Условные требования: Каждому выбранному объекту соответствует expected_versions. Для visit со временем обязательны starts_at, ends_at и crew_user_ids; координаты и клиентское окно передаются парами. Covered требует service_contract_id; billable не принимает его.

Ответы

HTTP Назначение и схема
201 Создано. Полная схема и пример
400 Некорректный запрос. Коды и формат ошибки
401 Требуется действующий Bearer. Коды и формат ошибки
403 Недостаточно допуска. Коды и формат ошибки
404 Не найдено или недоступно. Коды и формат ошибки
406 Недопустимое кодирование ответа. Коды и формат ошибки
409 Конфликт состояния или повтора. Коды и формат ошибки
412 Версия устарела. Коды и формат ошибки
413 Превышен размер. Коды и формат ошибки
415 Неподдерживаемый Content-Type. Коды и формат ошибки
422 Ошибка входных данных. Коды и формат ошибки
428 Нужно предусловие версии. Коды и формат ошибки
429 Лимит запросов, Retry-After. Коды и формат ошибки
500 Внутренняя ошибка, исход нужно уточнить. Коды и формат ошибки
503 Временно недоступно. Коды и формат ошибки
HTTP Заголовок ответа Тип Описание
201 Cache-Control строка
400 Cache-Control строка
401 Cache-Control строка
403 Cache-Control строка
404 Cache-Control строка
406 Cache-Control строка
409 Cache-Control строка
412 Cache-Control строка
413 Cache-Control строка
415 Cache-Control строка
422 Cache-Control строка
428 Cache-Control строка
429 Cache-Control строка
500 Cache-Control строка
503 Cache-Control строка

Каждый ответ содержит новый 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-schedules/plan-visit" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-schedules-plan-visit:001" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-schedules.plan-visit.json'

POST /maintenance-schedules/{id}/create-act

Создание или получение связанного акта ТО.

Доступ. Разрешения подключения: maintenance_schedules:write, acts: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 Успех. Полная схема и пример
201 Создано. Полная схема и пример
400 Некорректный запрос. Коды и формат ошибки
401 Требуется действующий Bearer. Коды и формат ошибки
403 Недостаточно допуска. Коды и формат ошибки
404 Не найдено или недоступно. Коды и формат ошибки
406 Недопустимое кодирование ответа. Коды и формат ошибки
409 Конфликт состояния или повтора. Коды и формат ошибки
412 Версия устарела. Коды и формат ошибки
413 Превышен размер. Коды и формат ошибки
415 Неподдерживаемый Content-Type. Коды и формат ошибки
422 Ошибка входных данных. Коды и формат ошибки
428 Нужно предусловие версии. Коды и формат ошибки
429 Лимит запросов, Retry-After. Коды и формат ошибки
500 Внутренняя ошибка, исход нужно уточнить. Коды и формат ошибки
503 Временно недоступно. Коды и формат ошибки
HTTP Заголовок ответа Тип Описание
200 Cache-Control строка
201 Cache-Control строка
400 Cache-Control строка
401 Cache-Control строка
403 Cache-Control строка
404 Cache-Control строка
406 Cache-Control строка
409 Cache-Control строка
412 Cache-Control строка
413 Cache-Control строка
415 Cache-Control строка
422 Cache-Control строка
428 Cache-Control строка
429 Cache-Control строка
500 Cache-Control строка
503 Cache-Control строка

Каждый ответ содержит новый 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-schedules/101/create-act" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-schedules-create-act:001" \
  --header "If-Resource-Version: $RESOURCE_VERSION" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-schedules.create-act.json'

POST /maintenance-schedules/{id}/update

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

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

Параметры

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

Тело запроса

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

Поле Тип Обязательно null Ограничения и смысл
title строка нет нет не более 255 символов
planned_date строка (дата) нет нет —
description строка / null нет да не более 10000 символов
assigned_user_id целое число / null нет да ≥ 1
scenario_id целое число / null нет да ≥ 1
service_contract_id целое число / null нет да ≥ 1
workshop_id целое число нет нет ≥ 1
type строка нет нет Допустимо: "preventive", "corrective"
priority строка нет нет Допустимо: "low", "medium", "high", "critical"
deadline_at строка / null (дата и время) нет да не более 64 символов; Шаблон: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:Z|[+-]\d{2}:\d{2})$

Ответы

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

Каждый ответ содержит новый 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-schedules/101/update" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-schedules-update:001" \
  --header "If-Resource-Version: $RESOURCE_VERSION" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-schedules.update.json'

POST /maintenance-schedules/{id}/start

Начало выполнения.

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

Параметры

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

Тело запроса

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

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

Ответы

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

Каждый ответ содержит новый 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-schedules/101/start" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-schedules-start:001" \
  --header "If-Resource-Version: $RESOURCE_VERSION" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-schedules.start.json'

POST /maintenance-schedules/{id}/reschedule

Изменение даты и ответственного.

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

Параметры

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

Тело запроса

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

Поле Тип Обязательно null Ограничения и смысл
planned_date строка (дата) да нет —
assigned_user_id целое число / null нет да ≥ 1

Ответы

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

Каждый ответ содержит новый 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-schedules/101/reschedule" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-schedules-reschedule:001" \
  --header "If-Resource-Version: $RESOURCE_VERSION" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-schedules.reschedule.json'

POST /maintenance-schedules/{id}/execution

Сохранение прогресса, результата и типизированных полей.

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

Параметры

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

Тело запроса

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

Поле Тип Обязательно null Ограничения и смысл
result строка / null нет да не более 10000 символов
custom_fields массив нет нет не более 100 элементов; Без повторов
custom_fields[] объект да нет Только перечисленные ключи
custom_fields[].field_id целое число да нет ≥ 1
custom_fields[].value строка / логическое значение / массив / объект / null да да —
custom_fields[].value (вариант 3) массив нет нет —
custom_fields[].value (вариант 3)[] строка да нет —
custom_fields[].value (вариант 4) объект нет нет —
custom_fields[].value (вариант 4).amount строка да нет —
custom_fields[].value (вариант 4).currency строка да нет —
checklist массив нет нет не более 100 элементов; Без повторов
checklist[] объект да нет Только перечисленные ключи
checklist[].id целое число да нет ≥ 1
checklist[].version целое число да нет ≥ 0
checklist[].is_completed логическое значение нет нет —
checklist[].note строка / null нет да не более 10000 символов

Ответы

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

Каждый ответ содержит новый 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-schedules/101/execution" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-schedules-execution:001" \
  --header "If-Resource-Version: $RESOURCE_VERSION" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-schedules.execution.json'

POST /maintenance-schedules/{id}/complete

Завершение только этой заявки.

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

Параметры

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

Тело запроса

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

Поле Тип Обязательно null Ограничения и смысл
result строка / null нет да не более 10000 символов

Ответы

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

Каждый ответ содержит новый 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-schedules/101/complete" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-schedules-complete:001" \
  --header "If-Resource-Version: $RESOURCE_VERSION" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-schedules.complete.json'

POST /maintenance-schedules/{id}/cancel

Отмена заявки с причиной.

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

Параметры

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

Тело запроса

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

Поле Тип Обязательно null Ограничения и смысл
reason строка да нет не менее 1 символов; не более 2000 символов

Ответы

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

Каждый ответ содержит новый 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-schedules/101/cancel" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-schedules-cancel:001" \
  --header "If-Resource-Version: $RESOURCE_VERSION" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-schedules.cancel.json'

POST /maintenance-schedules/{id}/reopen

Возврат заявки в работу.

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

Параметры

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

Тело запроса

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

Поле Тип Обязательно null Ограничения и смысл
reason строка да нет не менее 1 символов; не более 2000 символов

Ответы

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

Каждый ответ содержит новый 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-schedules/101/reopen" \
  --header "Authorization: Bearer $SERVICEAPP_TOKEN" \
  --header "Accept: application/json" \
  --header "Idempotency-Key: example:v1-maintenance-schedules-reopen:001" \
  --header "If-Resource-Version: $RESOURCE_VERSION" \
  --header "Content-Type: application/json" \
  --data-binary '@examples/requests/v1.maintenance-schedules.reopen.json'