Индивидуальные планы оборудования
Все операции. Авторизация. Запросы и повторы.
Все пути в этом файле дополняют /api/v1 на домене организации.
Описание и ограничения
Назначение
Цикл обслуживания по календарю или наработке конкретной единицы с собственным следующим сроком и историей выполнения.
Поля и назначение
| Публичное поле | Формат и смысл | Доступ |
|---|---|---|
id, equipment_id |
id и обязательная единица |
только чтение / при создании |
title, description, type, priority |
описание и вид обслуживания | чтение и запись |
trigger_type, schedule_mode |
calendar / usage / hybrid и fixed / floating |
чтение и запись |
calendar_interval_value, calendar_interval_unit, usage_interval, usage_lead |
интервалы и опережение | чтение и запись |
anchor_date, calendar_pattern, week_days, month_days |
календарная опора и шаблон, как у регламента | чтение и запись |
workshop_id, scenario_defaults |
мастерская и типизированные значения сценария по умолчанию | чтение и запись |
completion_window_value, completion_window_unit |
целое 0–3650/null и hour/day/week | чтение и запись |
assigned_user_id, scenario_id, service_contract_id |
проверенные связи | чтение и запись |
starts_on, ends_on, generation_time, lead_time_days |
календарные настройки | чтение и запись |
next_due_date, next_due_usage, next_cycle_number |
серверный курсор цикла | только чтение |
maintenance_regulation_id, regulation_overridden, revision |
происхождение и версия | только чтение |
status, equipment_date_field |
active/paused/ended; поле даты для наследуемого плана/null | только чтение |
links |
edit — существующая страница редактирования при наличии доступа; public и portal — null |
только чтение |
version, updated_at |
строка Unix-секунд и UTC timestamp без микросекунд | только чтение |
Обязательность и null указаны в схемах каждой операции ниже.
Доступ и выборка
maintenance_plans:read/write и «ТОиР — Обслуживание → Просмотр, Изменение»; текущая мастерская плана, оборудование и его клиент должны оставаться доступными. Создание дополнительно требует «ТОиР — Оборудование → Просмотр»; выбор нового договора — «Клиенты и поставщики → Просмотр» и текущий доступ к договору. Эти права и связи сохраняются в записи об операции и проверяются при повторе. Отдельные разрешения на чтение оборудования и договоров для команд плана не требуются. Обновление существующего плана без выбора новых связей доступно с правом сохранения ТО.
Фильтры: equipment_id, maintenance_regulation_id, status, trigger_type, next_due_from/to.
Запросы
Для создания требуются equipment_id, title, trigger_type и starts_on. Правила календаря/наработки, значения типа и приоритета по умолчанию, anchor_date, generation_time, lead_time_days и окна выполнения совпадают с регламентами. Единица наработки берётся из оборудования и должна быть настроена. Начальный status=active; source, курсоры, revision и связь регламента задаются сервером. План по дате оборудования создаётся синхронизацией регламента, не ручным trigger_type=equipment_date.
scenario_defaults — JSON-объект с кодами активных полей выбранного сценария. Форматы значений совпадают с дополнительными полями: десятичная строка, логическое значение, строка выбранного варианта, массив строк для множественного выбора, денежный объект {amount, currency} или null. Значения "0", false и null сохраняют свои типы. Списки дней и вариантов передаются массивами; объект с ключом "0" не считается массивом. Если прежние значения по умолчанию противоречат друг другу и сохранены одновременно по коду и идентификатору поля, возвращается 409; исправьте их явно. Новые значения не создают временные заявки и не меняют снимки начатых заявок.
Изменение принимает доступные для записи поля и If-Resource-Version плана. Для плана, полученного из регламента, устанавливается regulation_overridden=true. Приостановка, возобновление и завершение принимают {} и версию плана. Переходы: active → paused, paused → active, active/paused → ended. Команда generate также принимает {} и версию; она создаёт заявку только для текущего наступившего цикла. Произвольную дату, номер цикла или принудительный запуск передать нельзя. Если срок не наступил, возвращается 409 MAINTENANCE_NOT_DUE. Ответ generate: 201 с новой заявкой или 200 с существующей. Остальные команды возвращают карточку плана. Изменения отражаются в meta.affected_resources.
При смене типа цикла прежние несовместимые параметры нужно явно очистить. План по дате оборудования допускает только описание, вид и приоритет, ответственного, опережение, окно выполнения, время генерации, конечную дату и значения по умолчанию; календарь задаёт регламент. План, созданный сценарием обслуживания, допускает описание, вид и приоритет, ответственного, конечную дату, опережение и значения по умолчанию; период, мастерскую и происхождение задаёт сценарий. Остальные изменения таких планов возвращают 422, а не успешный ответ без изменения данных.
Команда generate не синхронизирует общий регламент автоматически. Устаревшая версия унаследованных настроек, приостановленный регламент или неприменимый план возвращают 409. Незавершённая или неуспешная пакетная синхронизация текущей версии регламента также блокирует создание заявки. План с regulation_overridden=true сохраняет собственные настройки и допускает создание заявки после успешного завершения пакета, даже если его regulation_revision отличается от общей. Неактивное оборудование блокирует создание новых заявок. Повтор принятого запроса с прежним Idempotency-Key возвращает сохранённый ответ после проверки доступа. Повторная установка текущего состояния и изменение без новых значений сохраняют версию и не создают событие.
Правила и связи
- Изменение плана регламента помечает его настройки как заданные отдельно от общего правила.
- generate одного цикла не создаёт дубль даже с разными Idempotency-Key.
- Курсор, last_completed_usage и
next_cycle_numberне принимаются из запроса.
Операции
| Метод | Путь | Назначение |
|---|---|---|
| GET | /maintenance-plans |
Список с фильтрами и пагинацией |
| POST | /maintenance-plans |
Создание |
| GET | /maintenance-plans/{id} |
Карточка |
| POST | /maintenance-plans/{id}/update |
Изменение разрешённых полей |
| POST | /maintenance-plans/{id}/pause |
Пауза плана |
| POST | /maintenance-plans/{id}/resume |
Возобновление |
| POST | /maintenance-plans/{id}/end |
Завершение |
| POST | /maintenance-plans/{id}/generate |
Создание заявки текущего допустимого цикла |
GET /maintenance-plans
Список с фильтрами и пагинацией.
Доступ. Разрешения подключения: maintenance_plans:read. Права сотрудника: «ТОиР — Обслуживание → Просмотр». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.
Параметры
| Имя | Где | Тип | Обязательно | null | Ограничения |
|---|---|---|---|---|---|
Authorization |
заголовок | строка | да | нет | Bearer <SERVICEAPP_TOKEN> |
filter[equipment_id] |
параметр запроса | целое число | нет | нет | ≥ 1 |
filter[maintenance_regulation_id] |
параметр запроса | целое число | нет | нет | ≥ 1 |
filter[status] |
параметр запроса | строка | нет | нет | Допустимо: "active", "paused", "ended" |
filter[trigger_type] |
параметр запроса | строка | нет | нет | Допустимо: "calendar", "usage", "hybrid", "equipment_date" |
filter[next_due_from] |
параметр запроса | строка (дата) | нет | нет | — |
filter[next_due_to] |
параметр запроса | строка (дата) | нет | нет | — |
sort |
параметр запроса | строка | нет | нет | Допустимо: "id", "-id", "updated_at,id", "-updated_at,-id" |
page[size] |
параметр запроса | целое число | нет | нет | ≥ 1.0; ≤ 100.0 |
page[cursor] |
параметр запроса | строка | нет | нет | не более 8192 символов |
Ответы
| 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-plans" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json"
POST /maintenance-plans
Создание.
Доступ. Разрешения подключения: maintenance_plans:write. Права сотрудника: «ТОиР — Обслуживание → Изменение». Дополнительно действуют доступ к записям, мастерским, модулям и условия полей из описания ресурса выше.
Параметры
| Имя | Где | Тип | Обязательно | null | Ограничения |
|---|---|---|---|---|---|
Authorization |
заголовок | строка | да | нет | Bearer <SERVICEAPP_TOKEN> |
Idempotency-Key |
заголовок | строка | да | нет | не менее 1 символов; не более 128 символов; Шаблон: ^[A-Za-z0-9._:-]+$ |
Тело запроса
Content-Type: application/json. Тело обязательно.
| Поле | Тип | Обязательно | null | Ограничения и смысл |
|---|---|---|---|---|
title |
строка | да | нет | не более 255 символов |
description |
строка / null | нет | да | не более 10000 символов |
trigger_type |
строка | да | нет | Допустимо: "calendar", "usage", "hybrid" |
starts_on |
строка (дата) | да | нет | — |
ends_on |
строка / null (дата) | нет | да | — |
anchor_date |
строка / null (дата) | нет | да | — |
workshop_id |
целое число | нет | нет | ≥ 1 |
assigned_user_id |
целое число / null | нет | да | ≥ 1 |
scenario_id |
целое число / null | нет | да | ≥ 1 |
service_contract_id |
целое число / null | нет | да | ≥ 1 |
type |
строка | нет | нет | Допустимо: "preventive", "corrective" |
priority |
строка | нет | нет | Допустимо: "low", "medium", "high", "critical" |
schedule_mode |
строка / null | нет | да | Допустимо: "fixed", "floating", null |
calendar_interval_value |
целое число / null | нет | да | ≥ 1.0; ≤ 1000.0 |
calendar_interval_unit |
строка / null | нет | да | Допустимо: "day", "week", "month", "year", null |
calendar_pattern |
строка | нет | нет | Допустимо: "interval", "weekdays", "month_days" |
week_days |
массив | нет | нет | не более 7 элементов; Без повторов |
week_days[] |
целое число | да | нет | ≥ 1.0; ≤ 7.0 |
month_days |
массив | нет | нет | не более 32 элементов; Без повторов |
month_days[] |
целое число | да | нет | ≥ 0.0; ≤ 31.0 |
usage_interval |
целое число / null | нет | да | ≥ 1 |
usage_lead |
целое число / null | нет | да | ≥ 0 |
lead_time_days |
целое число | нет | нет | ≥ 0.0; ≤ 3650.0 |
generation_time |
строка | нет | нет | Шаблон: ^(?:[01]\d|2[0-3]):[0-5]\d$ |
completion_window_value |
целое число / null | нет | да | ≥ 0.0; ≤ 3650.0 |
completion_window_unit |
строка | нет | нет | Допустимо: "hour", "day", "week" |
scenario_defaults |
объект | нет | нет | макс. ключей 100 |
scenario_defaults.{ключ} |
строка / логическое значение / массив / объект / null | нет | да | — |
scenario_defaults.{ключ} (вариант 3) |
массив | нет | нет | — |
scenario_defaults.{ключ} (вариант 3)[] |
строка | да | нет | — |
scenario_defaults.{ключ} (вариант 4) |
объект | нет | нет | — |
scenario_defaults.{ключ} (вариант 4).amount |
строка | да | нет | — |
scenario_defaults.{ключ} (вариант 4).currency |
строка | да | нет | — |
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-plans" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: example:v1-maintenance-plans-store:001" \
--header "Content-Type: application/json" \
--data-binary '@examples/requests/v1.maintenance-plans.store.json'
GET /maintenance-plans/{id}
Карточка.
Доступ. Разрешения подключения: maintenance_plans: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-plans/101" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json"
POST /maintenance-plans/{id}/update
Изменение разрешённых полей.
Доступ. Разрешения подключения: maintenance_plans: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 символов |
description |
строка / null | нет | да | не более 10000 символов |
trigger_type |
строка | нет | нет | Допустимо: "calendar", "usage", "hybrid" |
starts_on |
строка (дата) | нет | нет | — |
ends_on |
строка / null (дата) | нет | да | — |
anchor_date |
строка / null (дата) | нет | да | — |
workshop_id |
целое число | нет | нет | ≥ 1 |
assigned_user_id |
целое число / null | нет | да | ≥ 1 |
scenario_id |
целое число / null | нет | да | ≥ 1 |
service_contract_id |
целое число / null | нет | да | ≥ 1 |
type |
строка | нет | нет | Допустимо: "preventive", "corrective" |
priority |
строка | нет | нет | Допустимо: "low", "medium", "high", "critical" |
schedule_mode |
строка / null | нет | да | Допустимо: "fixed", "floating", null |
calendar_interval_value |
целое число / null | нет | да | ≥ 1.0; ≤ 1000.0 |
calendar_interval_unit |
строка / null | нет | да | Допустимо: "day", "week", "month", "year", null |
calendar_pattern |
строка | нет | нет | Допустимо: "interval", "weekdays", "month_days" |
week_days |
массив | нет | нет | не более 7 элементов; Без повторов |
week_days[] |
целое число | да | нет | ≥ 1.0; ≤ 7.0 |
month_days |
массив | нет | нет | не более 32 элементов; Без повторов |
month_days[] |
целое число | да | нет | ≥ 0.0; ≤ 31.0 |
usage_interval |
целое число / null | нет | да | ≥ 1 |
usage_lead |
целое число / null | нет | да | ≥ 0 |
lead_time_days |
целое число | нет | нет | ≥ 0.0; ≤ 3650.0 |
generation_time |
строка | нет | нет | Шаблон: ^(?:[01]\d|2[0-3]):[0-5]\d$ |
completion_window_value |
целое число / null | нет | да | ≥ 0.0; ≤ 3650.0 |
completion_window_unit |
строка | нет | нет | Допустимо: "hour", "day", "week" |
scenario_defaults |
объект | нет | нет | макс. ключей 100 |
scenario_defaults.{ключ} |
строка / логическое значение / массив / объект / null | нет | да | — |
scenario_defaults.{ключ} (вариант 3) |
массив | нет | нет | — |
scenario_defaults.{ключ} (вариант 3)[] |
строка | да | нет | — |
scenario_defaults.{ключ} (вариант 4) |
объект | нет | нет | — |
scenario_defaults.{ключ} (вариант 4).amount |
строка | да | нет | — |
scenario_defaults.{ключ} (вариант 4).currency |
строка | да | нет | — |
Ответы
| 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-plans/101/update" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: example:v1-maintenance-plans-update:001" \
--header "If-Resource-Version: $RESOURCE_VERSION" \
--header "Content-Type: application/json" \
--data-binary '@examples/requests/v1.maintenance-plans.update.json'
POST /maintenance-plans/{id}/pause
Пауза плана.
Доступ. Разрешения подключения: maintenance_plans: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-plans/101/pause" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: example:v1-maintenance-plans-pause:001" \
--header "If-Resource-Version: $RESOURCE_VERSION" \
--header "Content-Type: application/json" \
--data-binary '@examples/requests/v1.maintenance-plans.pause.json'
POST /maintenance-plans/{id}/resume
Возобновление.
Доступ. Разрешения подключения: maintenance_plans: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-plans/101/resume" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: example:v1-maintenance-plans-resume:001" \
--header "If-Resource-Version: $RESOURCE_VERSION" \
--header "Content-Type: application/json" \
--data-binary '@examples/requests/v1.maintenance-plans.resume.json'
POST /maintenance-plans/{id}/end
Завершение.
Доступ. Разрешения подключения: maintenance_plans: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-plans/101/end" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: example:v1-maintenance-plans-end:001" \
--header "If-Resource-Version: $RESOURCE_VERSION" \
--header "Content-Type: application/json" \
--data-binary '@examples/requests/v1.maintenance-plans.end.json'
POST /maintenance-plans/{id}/generate
Создание заявки текущего допустимого цикла.
Доступ. Разрешения подключения: maintenance_plans: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 | Успех. Полная схема и пример |
| 201 | Создано. Полная схема и пример |
| 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 |
строка | |
| 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 |
строка | |
| 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-plans/101/generate" \
--header "Authorization: Bearer $SERVICEAPP_TOKEN" \
--header "Accept: application/json" \
--header "Idempotency-Key: example:v1-maintenance-plans-generate:001" \
--header "If-Resource-Version: $RESOURCE_VERSION" \
--header "Content-Type: application/json" \
--data-binary '@examples/requests/v1.maintenance-plans.generate.json'