Для AI-агентов: markdown этой страницы — /docs-content/infra/work-schedules/set-default.md индекс документации — /llms.txt

Отметить расписание по умолчанию

PUT /v1/work-schedules/:id/default

Отмечает расписание работы, на котором рождаются новые машины портала, или снимает эту отметку. Уже созданные машины свой режим не меняют.

Отметок две, и ставятся они независимо: machines — для новых серверов и приложений в галактике, agents — для новых агентов и ботов. Агент на расписании вне окна спит и не отвечает на сообщения до начала следующего окна, поэтому для агентов отметка отдельная. Каждая отметка стоит не больше чем на одном расписании: поставленная на новое расписание, она снимается с прежнего.

Отметку ставит и снимает только администратор портала — она меняет режим новых машин всех сотрудников, а с ним и их счёт. Право администратора проверяется по владельцу личного ключа, поэтому вызов с ключом OAuth-приложения отклоняется с 403 ADMIN_ONLY и с сессией администратора. Примеры ниже — только для личного ключа.

Параметры

Параметр В Тип Обяз. Описание
id path string да ID расписания — готового или своего. Источник — data[].id из списка расписаний

Поля запроса (body)

Поле Тип Обяз. Описание
audience string да Какая отметка: machines — новые серверы и приложения в галактике, agents — новые агенты и боты
enabled boolean да true — поставить отметку на это расписание, false — снять её с него

Примеры

curl — личный ключ

Terminal
curl -X PUT https://vibecode.bitrix24.tech/v1/work-schedules/WORK_SCHEDULE_ID/default \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "audience": "machines", "enabled": true }'

JavaScript — личный ключ

javascript
const res = await fetch(
  `https://vibecode.bitrix24.tech/v1/work-schedules/${workScheduleId}/default`,
  {
    method: 'PUT',
    headers: {
      'X-Api-Key': 'YOUR_API_KEY',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ audience: 'machines', enabled: true }),
  }
)
const { data } = await res.json()
const marked = data.find(s => s.defaultForNewMachines)
console.log(`Новые машины рождаются на расписании: ${marked ? marked.name : 'не отмечено'}`)

Поля ответа

Поле Тип Описание
success boolean Всегда true при успехе
data array Вся библиотека расписаний портала после изменения: отметка могла переехать с одного расписания на другое. Форма элемента — как в списке расписаний
data[].defaultForNewMachines boolean На этом расписании рождаются новые серверы и приложения в галактике. true не больше чем у одного расписания
data[].defaultForNewAgents boolean На этом расписании рождаются новые агенты и боты. true не больше чем у одного расписания

Пример ответа

Отметка для машин поставлена на расписание «Смены склада» и в ответе стоит только на нём:

JSON
{
  "success": true,
  "data": [
    {
      "id": "cmfp4qz7x00031ocg5d1a8k2m",
      "kind": "PRESET",
      "name": "Будни 9–18",
      "presetKey": "weekdays-9-18",
      "timezone": "Europe/Moscow",
      "windows": [
        { "isoDay": 1, "start": "09:00", "end": "18:00" },
        { "isoDay": 2, "start": "09:00", "end": "18:00" },
        { "isoDay": 3, "start": "09:00", "end": "18:00" },
        { "isoDay": 4, "start": "09:00", "end": "18:00" },
        { "isoDay": 5, "start": "09:00", "end": "18:00" }
      ],
      "version": 1,
      "canEdit": false,
      "assignedCount": 3,
      "defaultForNewMachines": false,
      "defaultForNewAgents": false
    },
    {
      "id": "cmfp4r0q2000a1ocg7h2k9x3d",
      "kind": "CUSTOM",
      "name": "Смены склада",
      "presetKey": null,
      "timezone": "Europe/Moscow",
      "windows": [
        { "isoDay": 1, "start": "09:00", "end": "18:00" },
        { "isoDay": 2, "start": "09:00", "end": "13:00" },
        { "isoDay": 2, "start": "14:00", "end": "24:00" }
      ],
      "version": 2,
      "canEdit": true,
      "assignedCount": 1,
      "defaultForNewMachines": true,
      "defaultForNewAgents": false
    }
  ]
}

Пример ответа при ошибке

403 — владелец ключа не администратор портала:

JSON
{
  "success": false,
  "error": {
    "code": "ADMIN_ONLY",
    "message": "Only a Bitrix24 account administrator can choose the schedule new machines are born with"
  }
}

Ошибки

HTTP Код Описание
400 VALIDATION_ERROR Тело не подходит под схему: нет audience или enabled, audience не machines и не agents, enabled не true и не false, в теле лишнее поле. В message — путь к полю и причина
400 WORK_SCHEDULE_EMPTY У расписания нет ни одного окна: машина на нём не работала бы никогда. Снять отметку с такого расписания можно
400 RUN_MODE_UNAVAILABLE Режимы работы ещё не включены для портала
401 MISSING_API_KEY Не передан заголовок X-Api-Key
401 INVALID_API_KEY Ключ не опознан: такой строки на платформе нет
403 ADMIN_ONLY Владелец ключа не администратор портала, либо вызов сделан ключом OAuth-приложения
403 WRITE_BLOCKED_READONLY_KEY Ключ в режиме «только чтение» — отметка ему закрыта
403 INFRA_SCOPE_REQUIRED У ключа нет скоупа vibe:infra
403 INFRA_FORBIDDEN_FOR_COWORK_KEY Вызов сделан ключом Cowork/Code — библиотека расписаний такому ключу закрыта. Что делать — Проектный ключ для деплоя
404 NOT_FOUND Расписания с таким id нет в портале ключа, либо ключ не привязан к порталу Битрикс24. Расписание другого портала отвечает так же — ответ не подтверждает, что оно существует
429 RATE_LIMITED Превышен лимит 30 запросов в минуту на ключ. Точное значение — в заголовке x-ratelimit-limit (потолок делится на реплики)

Полный список общих ошибок API — Ошибки.

Известные особенности

  • Явный режим при создании сильнее отметки. Сервер, в запросе создания которого передан блок runMode, рождается в названном режиме, включая явный IDLE. Отметка действует, только когда режим при создании не назван, — Создать сервер.
  • Отметка не мешает созданию. Если отмеченное расписание применить не удалось, машина рождается в том режиме, в котором родилась бы без отметки, а создание не отклоняется. Режим, доставшийся машине, — поля runMode и workSchedule в GET /v1/infra/servers/:id.
  • Кто получает отметку при рождении. Отметку machines получают сервер, созданный в личном кабинете или через POST /v1/infra/servers, и приложение в галактике. Отметку agents — машина, которую платформа создаёт под агента или управляемого бота. Хост галактики отметку не получает: своего режима у него нет, он работает, пока работает хоть одно его приложение.
  • Повторный вызов ничего не меняет. Отметку, которая уже стоит на расписании, можно поставить ещё раз — ответ тот же 200. Снятие с расписания, которое отметки не несёт, тоже отвечает 200 и не трогает отметку на другом расписании.
  • Одно расписание может нести обе отметки. Отметки machines и agents независимы: их можно поставить на одно расписание или на разные.
  • Удаление расписания снимает его отметки. После удаления отмеченного расписания новые машины рождаются так же, как без отметки.

Смотрите также