# Включить или отключить вебхук задания

> Вебхук позволяет внешней системе запускать задание вне расписания запросом по секретному адресу. При включении выпускается новый адрес, прежний перестаёт работать; адрес возвращается один раз. Доступно автору задания.

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## Включить или отключить вебхук задания

`POST /ws/api/agents/{agentId}/schedules/{scheduleId}/webhook`

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

**Авторизация:** dpop

**Параметры**

| Имя | Где | Обязательный | Тип | Описание |
| --- | --- | --- | --- | --- |
| `agentId` | path | да | string (uuid) | Идентификатор агента |
| `scheduleId` | path | да | string (uuid) | Идентификатор задания |

**Тело запроса** (`application/json`, обязательное): object
- `enabled`: boolean, обязательное — true — включить вебхук и выпустить новый адрес, false — отключить

**Ответы**

- `200` — Задание и адрес вебхука (`application/json`, object)
  - `schedule`: object, обязательное
    - `agentId`: string, обязательное — Идентификатор агента
    - `channels`: массив "chat" | "telegram" | "email", обязательное — Куда присылать результат
    - `conversationId`: string, nullable, обязательное — Беседа, куда приходят результаты
    - `createdAt`: string, обязательное — Создано, ISO 8601
    - `endsOn`: string, nullable, обязательное — Последний день работы; null — без окончания
    - `hold`: object, обязательное — Остановка администратором; null — не остановлено
      - `at`: string, обязательное — Когда, ISO 8601
      - `byUserId`: string, обязательное — Кто остановил
      - `reason`: string, обязательное — Причина
    - `id`: string, обязательное — Идентификатор задания
    - `lastFailed`: boolean, обязательное — Последний запуск завершился ошибкой
    - `lastRunAt`: string, nullable, обязательное — Последний запуск, ISO 8601
    - `name`: string, обязательное — Название
    - `nextRunAt`: string, nullable, обязательное — Следующий запуск, ISO 8601
    - `origin`: "chat" | "telegram" | "panel" | "agent", обязательное — Где создано: chat — в чате, telegram — в Telegram, panel — в разделе «Агенты», agent — агентом
    - `overlap`: "skip" | "queue" | "replace", обязательное — Если к очередному запуску предыдущий ещё идёт: skip — пропустить очередной запуск, queue — выполнить его сразу после текущего, replace — остановить текущий и начать новый
    - `prompt`: string, обязательное — Что делает агент
    - `quotaPaused`: boolean, обязательное — Приостановлено, пока исчерпан месячный лимит работы агента; продолжится автоматически
    - `repeatDone`: integer, обязательное — Сколько раз задание уже выполнено
    - `repeatTimes`: integer, nullable, обязательное — Число повторов; null — без ограничения
    - `schedule`: string, обязательное — Расписание: выражение cron, every Nm или дата однократного запуска
    - `startsOn`: string, nullable, обязательное — Дата начала; null — сразу
    - `state`: "active" | "paused" | "running" | "finished", обязательное — active — работает по расписанию, paused — на паузе, running — выполняется прямо сейчас, finished — запусков больше не будет
    - `upcoming`: массив object, обязательное — Ближайшие запуски
      - `at`: string, обязательное — Время запуска, ISO 8601
      - `label`: string, обязательное — Время запуска по-русски в часовом поясе команды
    - `userId`: string, обязательное — Автор задания
    - `waiting`: boolean, обязательное — Ждёт даты начала
    - `webhook`: boolean, обязательное — Включён ли вебхук, по которому внешняя система запускает задание вне расписания
  - `url`: string, nullable, обязательное — Адрес вебхука; возвращается один раз при включении, при отключении — null
- `400` — Некорректный запрос: не прошла валидация параметров или тела (`application/problem+json`, ProblemDetails)
- `401` — Не авторизован
- `403` — Недостаточно прав на агента

    </>
  );
}
